задание
составить программу подсчета количества буквенных символов в выражении
дело состоит в том - не могу понять как организовать сам подсчет символов ..
вот,например, кусок программы, где находим символы в ыражении ( поидее), а что делать дальше не знаю((
...
for i:=1 to length(str) do
for x:='A' to 'Z' do
if k[x] in ['A','Z']
then n:=n+1
... итд
или вот буквенные символы( заглавные латинские) находятся в кодировке от 35 до 90....
здесь совсем темный лес...
for x:='A' to 'Z' do
if x>=35 and x<=90 {здесь мне при полной прогрмме выдавал ошибку[x<=90]. хотя даж не понимаю как
можноприсвоить так сказать символьной переменной Х число...не используя при этом
подпрограмм, хотя при х=> 35 прокатило...).
...
одним словом - ужас..
думаю.что здесь полный бред написан, но все же,надеюсь на помощь....
Может всё таки так будет правильнее:
If k[x] in ['A'..'Z','a'..'z'] then
begin
{
Выполняем нужные нам операции
}
end;
помогите исправить ошибку....
смысл вот он!... а тут ошибка((..туго с исправлением...
type
letters='A'..'Z';
var
k:array[letters] of string;
i,n:integer;
x:letters;
str:string;
begin
for i:=1 to length(str) do
begin
for x:='A' to 'Z' do
if k[x] in ['A','Z']
then
begin
n:=0;
for i:=1 to length(str) do
n:=n+1;
end;
end;
writeln('в выражении',n,'букв');
readln;
end.
Функция ord возращает порядковый номер символа в таблице кодов аски.
Символы A..Z идут под номерами от 65 до 90, a..z от 97 до 122
var s: string;
k,i: integer;
begin
readln(s);
K:=0;
for i:=1 to length(s) do
if (ord(s[i])>=65) and (ord(s[i])<=90) or
(ord(s[i])>=97) and (ord(s[i])<=122) then k:=k+1;
writeln(k);
readln;
end.
i:=1;
while (i<=length (str)) do
begin
if (S[i] in ['a'..'z','A'..'Z']) then
inc (count);
inc (i);
end;
WriteLn ('count=',count)
Если не ошибся, то типо чото того должно быть.
Буквы могут, кстати, быть не только латинскими...
угу....препод говрил...таблицу показывала с символами....там вопщем,не только буквы,а и символы...
было бы не плохо в FAQ'e такую таблицу вставить)
Трудно, конечно, что-то говорить, не зная, о какой таблице идет речь, но, вероятно, эта таблица может быть получена простейшей программой:
var(кстати, совсем недавно я ее где-то уже приводил. Возможно и на этом форуме)
i,j,k : integer;
f : file;
begin
assign(f,'ascii.cod');
rewrite(f,1);
for j := 0 to 15 do begin
for i := 0 to 15 do begin
k := i + j*16;
blockwrite(f,k,1);
end;
k := 13;
blockwrite(f,k,1);
k := 10;
blockwrite(f,k,1);
end;
close(f);
end.
Это не ASCII, это сканкоды клавиатуры.