Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 15.01.2015, 02:22   #1
Asya7
Пользователь
 
Аватар для Asya7
 
Регистрация: 30.11.2014
Сообщений: 65
По умолчанию помогите вывести ответ в столбик

Как вывести ответ не в строчку. Пробовала через for, но не выходит.Помогите, если можете. Я её не сама делала и мне не всё понятно, а вы можете пояснить значение переменных? Спасибо! Дан текст. Группы символов, разделённые пробелами (одним или несколькими) и не содержащие пробелов внутри себя, будем называть словами. Найти все слова, содержащие наибольшее количество гласных латинских букв(a,e,i,o,u).
Код:
program nomer;
var
smax: array[0..127] of string;
s, s1: string;
i, j, max: integer;
 
begin
for i := 0 to 127 do smax[i] := '';
write('введите строку:');
readln(s);
j := 0;
max := 0;
s1 := '';
for i := 1 to length(s) do 
begin
s1 := s1 + s[i];
if upcase(s[i]) in ['A', 'E', 'I', 'O', 'U'] then j := j + 1;
if (s[i] = ' ') or (i = length(s)) then begin
if max < j then max := j;
smax[j] := smax[j] + s1;
j := 0;
s1 := '';
end;
end;
if max = 0 then writeln('HeT TaKux') else begin
{for :=0 to length(s) do}
 
writeln('MAX=', max);
writeln(smax[max]);
end;
end.

Последний раз редактировалось Stilet; 15.01.2015 в 09:41.
Asya7 вне форума Ответить с цитированием
Старый 15.01.2015, 09:43   #2
min@y™
Цифровой кот
Старожил
 
Аватар для min@y™
 
Регистрация: 29.08.2014
Сообщений: 7,629
По умолчанию

Цитата:
Спасибо!
пожалуйста!
Расскажу я вам, дружочки, как выращивать грибочки: нужно в поле утром рано сдвинуть два куска урана...
min@y™ вне форума Ответить с цитированием
Старый 15.01.2015, 09:57   #3
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Изменить в конце:
Код:
if max = 0 then writeln('HeT TaKux') else begin
      writeln('MAX=', max);
      for i:=1 to length(smax[max]) do
         If smax[max][i]<>' ' then
            write(smax[max][i]) else
            writeln('');
   end;
   Readln;
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 16.01.2015, 09:05   #4
Asya7
Пользователь
 
Аватар для Asya7
 
Регистрация: 30.11.2014
Сообщений: 65
По умолчанию

newerow1989, спасибо большое, а вы можете пожалуйста, прокомментировать действия в задаче и название переменных, если вам не трудно?
Asya7 вне форума Ответить с цитированием
Старый 16.01.2015, 09:36   #5
newerow1989
Я самый любопытный
Участник клуба
 
Аватар для newerow1989
 
Регистрация: 24.07.2012
Сообщений: 1,949
По умолчанию

Код:
program nomer;
var
smax: array[0..127] of string;
s, s1: string;
i, j, max: integer;
 
begin
for i := 0 to 127 do smax[i] := '';
write('введите строку:');
readln(s);//исходная строчка
{обнуление счетчиков (3 строки)}
j := 0;
max := 0;
s1 := '';
for i := 1 to length(s) do 
begin
s1 := s1 + s[i];//записывает в переменную s1 каждый символ, s[i] - i-ый символ строки s
if upcase(s[i]) in ['A', 'E', 'I', 'O', 'U'] then j := j + 1;//если встретилась гласная буква в слове s, то j увеличиваем на единицу (т.е. считаем кол-во гласных в слове)
if (s[i] = ' ') or (i = length(s)) then begin//обнаружили пробел или дошли до конца строки s
if max < j then max := j;//записываем в переменную max максимальное количество гласных
smax[j] := smax[j] + s1;//запоминаем слово s1, далее обнуляем счетчик (следующие 2 строки)
j := 0;
s1 := '';
end;
end;
if max = 0 then writeln('HeT TaKux') else begin
      writeln('MAX=', max);//максимальное кол-во гласных
      for i:=1 to length(smax[max]) do
         {вывод слов на экран в столбик}
         If smax[max][i]<>' ' then
            write(smax[max][i]) else
            writeln('');
   end;
   Readln;
end.
С запрограммированным приветом, Неверов Евгений!
Сайт: http://newerow1989.ru
[Паскаль] [Delphi]
newerow1989 вне форума Ответить с цитированием
Старый 16.01.2015, 18:35   #6
Asya7
Пользователь
 
Аватар для Asya7
 
Регистрация: 30.11.2014
Сообщений: 65
По умолчанию

newerow1989, спасибо! Задачу сегодня сдала, но главное не это, главное, что я поняла её! Спасибо!
Asya7 вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Вывести в «столбик» таблицу умножения на число n rinoolik Помощь студентам 1 10.03.2013 22:56
C# Считать матрицу и вывести ответ. bestnicer Помощь студентам 7 08.11.2012 12:09
как вывести ответ на форму в дэлфи Polusha Общие вопросы C/C++ 2 06.06.2010 20:01
как вывести в окошке все выражение ((3+4)*2)^3=2744, а не только конечнный ответ? Lamo Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 1 19.12.2009 12:55
Как числа в двоичном виде вывести в столбик по 4 числа? Equalizer Общие вопросы C/C++ 11 27.09.2009 14:15