i am trying to create a program that allows me to see if a sentence is a palindrome. this is what i have but something is wrong.

CLS
DIM a\$(1 TO 5)
FOR i = 1 TO 5
INPUT "give me word"; word\$
NEXT i

LET differflag = 0
FOR i = 1 TO 5
IF a\$(i) <> a\$(5 - i) THEN
LET differflag = 1
END IF
NEXT i
IF differflag = 1 THEN
PRINT " not a palindrome"
ELSE PRINT "palindrome"
END IF

i am trying to create a program that allows me to see if a sentence is a palindrome. this is what i have but something is wrong.

CLS
DIM a\$(1 TO 5)
FOR i = 1 TO 5
INPUT "give me word"; word\$
NEXT i

LET differflag = 0
FOR i = 1 TO 5
IF a\$(i) <> a\$(5 - i) THEN
LET differflag = 1
END IF
NEXT i
IF differflag = 1 THEN
PRINT " not a palindrome"
ELSE PRINT "palindrome"
END IF

Solution:
Your problem was that you used 2 different variables subscripted and scalar.
CLS
DIM a\$(1 TO 5)
FOR i = 1 TO 5
INPUT "give me word";a\$(i)
NEXT i

LET differflag = 0
FOR i = 1 TO 5
IF a\$(i) <> a\$(5 - i) THEN
LET differflag = 1
END IF
NEXT i
IF differflag = 1 THEN
PRINT " not a palindrome"
ELSE
PRINT "palindrome"
END IF

// Program for checking Palindrome
// If already Palindrome it will show accordingly
#include<stdio.h>
#include<string.h>
#include<ctype.h>
int main( int argc ,char *argv[] )
{
unsigned char str[100];
unsigned char temp[100];
int i = 0,j = 0,k = 0,size=0;
int valid = 1;
int flag = 0;
if( argc > 1 )
{
str[0] = '\0';

for(i=1;i<=( argc - 1 );i++)
{
strcat(str,argv);
if( i <= ( argc - 2 ) )
strcat(str," ");
}

i=0;
while( str != '\0' )
{
if( i == 100 )
{
valid = 0;
printf("string length is not correct");
break;
}
else
{
if( ( str < 65 || str > 90 ) && ( str < 97 || str > 122 ) )
{
valid = 0;
printf("invalid data string");
break;
}
i++;
}
}
if( valid == 1 )
{
i=0;
while( str != '\0' )
i++;
size = i-1;

for( j=0;j<size ;j++)
{
if( j == 0 )
str[j] = toupper(str[j]);
else if(str[j] == ' ' )
{
flag = 1;
}
else
{
if( flag == 1 )
{
str[j] = toupper(str[j]);
flag = 0;
}
}
}

flag = 0;
for( k=0,j=i-1 ; j >=-1 ; j--,k++)
{
if( k == 0 )
temp[k] = toupper(str[j]);
else if( str[j] == ' ' )
{
temp[k-1] = tolower(temp[k-1]);
temp[k] = str[j];
flag = 1;
}
else if( j == -1 )
{
temp[k-1] = tolower(temp[k-1]);
flag = 1;k--;
}
else
{
if(flag == 1)
{
temp[k] = toupper(str[j]);
flag = 0;
}
else
temp[k] = str[j];
}
}
temp[k] = '\0';
if( stricmp(str,temp) == 0 )
printf("string is a palindrome");
else
printf("%s" " %s",str,temp);
}
}
else
printf("improper arguments");
return 0;
}

``````(defun palindrome ()
(force-output)
(format t "Your word '~a' ~:[is not~;is~] a palindrome"
word
(string-equal word (reverse word)))))``````

Strings in BASIC are not treated as arrays. Only C-based languages and Pascal do that.

A string array is an array of strings in basic, not an array of characters.

You need the SUBSTR(string, first, length) to look at a portion of a string.

Here is an example using a modern language like Python ...

``````def is_palindrome(phrase):
"""
take a phrase, convert to all lowercase letters, create a
list of the characters (ignore punctuation marks and whitespaces)
if it matches the reverse order, then it is a palindrome
"""
phrase_letters = [c for c in phrase.lower() if c.isalpha()]
return (phrase_letters == phrase_letters[::-1])

# test it ...