Форум программистов
 
Контакты: о проблемах с регистрацией, почтой и по другим вопросам пишите сюда - alarforum@yandex.ru, проверяйте папку спам! Обязательно пройдите активизацию e-mail.

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

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

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

Код:

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 в 09:32.
maxsimov20 вне форума   Ответить с цитированием
Старый 05.06.2018, 10:18   #2
evg_m
Профессионал
 
Регистрация: 20.04.2008
Сообщений: 4,654
Репутация: 2097
По умолчанию

Код:

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 в 10:22.
evg_m вне форума   Ответить с цитированием
Ответ

Опции темы

Ваши права в разделе
Вы не можете создавать новые темы
Вы не можете отвечать в темах
Вы не можете прикреплять вложения
Вы не можете редактировать свои сообщения

BB коды Вкл.
Смайлы Вкл.
[IMG] код Вкл.
HTML код Выкл.

Быстрый переход

Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Помогите, пожалуйста, найти ошибку в коде (найти сумму факториалов чётных чисел в заданном диапазоне) kris14 Паскаль 8 25.10.2017 16:42
[Язык C]: В массиве числа образуют неубывающую последовательность. Найти количество различных чисел в массиве. Помогите найти ошибку. Yulia24* Помощь студентам 0 18.10.2016 21:41
Дан массив а(n) типа SWORD. найти сумму всех отрицательных элементов массива.помогите найти ошибку Юлия123456 Assembler 2 07.09.2016 07:12
Найти седловые точки в матрице(помогите найти ошибку) - pascal tdsotm Помощь студентам 0 20.11.2014 19:57
Помогите найти ошибку - StrToFloat выдаёт ошибку EConvertError для ячеек StringGrid (Delphi) Artsiom Помощь студентам 10 18.12.2013 14:10


14:45.


Powered by vBulletin® Version 3.8.8 Beta 2
Copyright ©2000 - 2018, Jelsoft Enterprises Ltd.

RusProfile.ru


Справочник российских юридических лиц и организаций.
Проекты отопления, пеллетные котлы, бойлеры, радиаторы
интернет магазин respective.ru