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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 05.06.2018, 08:29   #1
maxsimov20
Новичок
Джуниор
 
Регистрация: 05.06.2018
Сообщений: 1
По умолчанию помогите найти ошибку, не выводится

Код:
var
  i, n: integer;
  S, t: string;
  bln: boolean;
  procedure vvod (S:string);
begin
  writeln('Введите строку:');
  readln(S);
end;
procedure vivod (t:string);
begin
    if bln then write(t, ' '); //если нашли цыфру, то выводим слово
    inc(i);
    writeln(t, ' ');
end;
function slovo (t:string):string;
begin
  S := S + ' ';
  n := Length(S); //количество символов в строке (длина строки)
  i := 1; //начальный номер символа
  while i < n do begin
    t := '';
    bln := false; //нет цыфры в слове (по умолчанию)
    while (s[i] <> ' ')and(i < n) do begin
      t := t + s[i];
      if s[i] in ['0'..'9'] then bln := true; //нашли цыфру в слове
      inc(i);
      vivod(t); 
    end;
end;
end;
begin
vvod(S);
slovo(t);
end.

Последний раз редактировалось Аватар; 05.06.2018 в 08:32.
maxsimov20 вне форума Ответить с цитированием
Старый 05.06.2018, 09:18   #2
evg_m
Старожил
 
Регистрация: 20.04.2008
Сообщений: 5,515
По умолчанию

Код:
begin
vvod(S); //здесь использована ничего НЕ возвращающая  процедура
состояние глобальной переменной(s) НЕ будет изменено.
slovo(t);//соответственно здесь будет нечего разбирать
end.
вар. 1. один результат правильнее возвращать как результат функции
Код:
function vvod: string;
begin
  writeln('Введите строку:');
  readln(vvod);
end;
вар. 2. но можно и сказать что параметр ДОЛЖЕН меняться
Код:
procedure vvod (var S:string);
вар.3. а можно и просто СРАЗУ записывать в глобальную
Код:
procedure vvod(s:string);
варианты в порядке моего предпочтения.
программа — запись алгоритма на языке понятном транслятору

Последний раз редактировалось evg_m; 05.06.2018 в 09:22.
evg_m на форуме Ответить с цитированием
Ответ


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

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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, найти ошибку в коде (найти сумму факториалов чётных чисел в заданном диапазоне) kris14 Паскаль, Turbo Pascal, PascalABC.NET 8 25.10.2017 15:42
[Язык C]: В массиве числа образуют неубывающую последовательность. Найти количество различных чисел в массиве. Помогите найти ошибку. Yulia24* Помощь студентам 0 18.10.2016 20:41
Дан массив а(n) типа SWORD. найти сумму всех отрицательных элементов массива.помогите найти ошибку Юлия123456 Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM 2 07.09.2016 06:12
Найти седловые точки в матрице(помогите найти ошибку) - pascal tdsotm Помощь студентам 0 20.11.2014 18:57
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10