Другие языки программирования и технологии
Народ, оч рассчитываю на вашу помощь .../паскаль/
Нужно написать программу в турбо паскале . Посчитать все символы аА, Bb. и т.д. в общем сколько каких букв было введено. Вот мой вариант только для маленькой буквы 'a'....Вроде бы можно сделать как-то по другому через CASE....подскажите кто знает. Uses crt; Var suma, n, i: byte; x: string; Begin ClnScr; writeln('Vvedite stroku'); readln(x); n:=lenght(x); suma:=0; for i:=1 to n do if x = 'a' then suma:=suma+1; writeln('a=' , suma); readln; End.
Доброго времени суток.
Абсолютно верно, Сыроежка! И даже проще. Не надо ничего вычитать.
var A : array['A'..'z'] of Integer;
Обнуляем массив
FillChar(A, SizeOf(A), 0);
А затем
for i:=1 to Length(S) do Inc(A[S[ i ]]);
Вот и все. Теперь элемент массива содержит число символов, равных индексу массива. С таким объявлением будут различаться символы разных регистров. Если это не надо, то массив объявить так ['A'..'Z'] или ['a'..'z']
Вывести результат можно так
for ch:='A' to 'z' do
if A[ch] > 0 then WriteLn(ch, ' - ', A[ch]);
ch - переменная типа Char
Удачи!
Абсолютно верно, Сыроежка! И даже проще. Не надо ничего вычитать.
var A : array['A'..'z'] of Integer;
Обнуляем массив
FillChar(A, SizeOf(A), 0);
А затем
for i:=1 to Length(S) do Inc(A[S[ i ]]);
Вот и все. Теперь элемент массива содержит число символов, равных индексу массива. С таким объявлением будут различаться символы разных регистров. Если это не надо, то массив объявить так ['A'..'Z'] или ['a'..'z']
Вывести результат можно так
for ch:='A' to 'z' do
if A[ch] > 0 then WriteLn(ch, ' - ', A[ch]);
ch - переменная типа Char
Удачи!
Вы должны объявить массив из 26 букв (столько букв в латинском алфавите) . Я не знаю Паскаль, но навреное там можно объявить массив с любым диапозоном индексов, например от буквы 'A' до буквы 'Z'.
Затем, вы должны устроить цикл по длине введенного слова, которое вы храните в переменной 'x'. Внутри этого цикла выделять подстроку из 'x' (наверное есть такая функция в Паскале) , состоящую из одной буквы.
Я напишу это функцию, как я ее себе представляю (ее имя может быть другим в Паскале, но смысл ясен)
substr( x, i, 1 ) или str( x, i, 1 ), ( не знаю, как в Паскале называется подобная функция) , где i - это переменная цикла по длине строки.
Например, вы определеяете массив от 1 до 26 (по количеству букв) . Затем устраиваете цикл по длине введенной строки. Выделяете в цикле очередную ьукву из строки. Переводите ее, допустим, в верхней регистр. Вычитаете из нее значение "A" - 1 и получите индекс элемента вашего массива, который соответсвтует нужной букве, и увеличиваете его на единицу!
Примерно такой алгоритм!:)
Затем, вы должны устроить цикл по длине введенного слова, которое вы храните в переменной 'x'. Внутри этого цикла выделять подстроку из 'x' (наверное есть такая функция в Паскале) , состоящую из одной буквы.
Я напишу это функцию, как я ее себе представляю (ее имя может быть другим в Паскале, но смысл ясен)
substr( x, i, 1 ) или str( x, i, 1 ), ( не знаю, как в Паскале называется подобная функция) , где i - это переменная цикла по длине строки.
Например, вы определеяете массив от 1 до 26 (по количеству букв) . Затем устраиваете цикл по длине введенной строки. Выделяете в цикле очередную ьукву из строки. Переводите ее, допустим, в верхней регистр. Вычитаете из нее значение "A" - 1 и получите индекс элемента вашего массива, который соответсвтует нужной букве, и увеличиваете его на единицу!
Примерно такой алгоритм!:)
Uses crt;
Var
suma_a,suma_b, n, i: byte;
x: string;
Begin
ClnScr;
writeln('Vvedite stroku');
readln(x);
n:=lenght(x);
suma_a:=0;
suma_b:=0;
for i:=1 to n do
case x of
'a': suma_a:=suma_a+1;
'b': suma_b:=suma_b+1;
end;
writeln('a=' , suma_a);
writeln('b=' , suma_b);
readln;
End.
Var
suma_a,suma_b, n, i: byte;
x: string;
Begin
ClnScr;
writeln('Vvedite stroku');
readln(x);
n:=lenght(x);
suma_a:=0;
suma_b:=0;
for i:=1 to n do
case x of
'a': suma_a:=suma_a+1;
'b': suma_b:=suma_b+1;
end;
writeln('a=' , suma_a);
writeln('b=' , suma_b);
readln;
End.
Похожие вопросы
- народ нужна ваша помощь...
- народ,срочно!нужна ваша помощь!вопрос жизни и смерти!
- Народ! Помогите решить задачи на языке паскаль. Очень срочно надо! Буду рада решению хотя бы одной из списка=)
- Помогите составить программу. тема "Процедуры и функции" при помощи Паскаль
- Помощь Паскаль
- Нужна помощь Паскаль !!!
- Подскажите пожалуйста. Рассчитываю на Ваш опыт и профессионализм. Спасибо.
- Господа, программисты, неопытному юзеру ОЧЕНЬ нужна Ваше помощь - установила 2 Windows
- У всех у кого Win XP нужна ваша помощь!!
- Контрольная по информатике.:( Жду вашей помощи!