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

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

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

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

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

Ответ
 
Опции темы Поиск в этой теме
Старый 14.04.2013, 20:11   #1
Reshebnik
 
Регистрация: 14.04.2013
Сообщений: 7
По умолчанию задача на цикл

№1.С клавиатуры вводится последовательность чисел оканчивающихся отрицательным числом. Определите, сколько было введено нулей? если нулей не было, то выведите об этом информацию.

№2. С клавиатуры вводится последовательность чисел оканчивающихся нулём. Определите, сколько чисел было введено положительных, у которых последнее число 5.

Последний раз редактировалось Reshebnik; 14.04.2013 в 20:29.
Reshebnik вне форума Ответить с цитированием
Старый 14.04.2013, 20:18   #2
Алексей_2012
t45t
Участник клуба
 
Аватар для Алексей_2012
 
Регистрация: 20.03.2012
Сообщений: 1,849
По умолчанию

Извиняюсь за кривой код, но вроде должно работать, просто паскаля нет под рукой

Код:
uses crt;
var i,l:integer;
s:string[255];
begin
l:=0;
clrscr;
writeln('VVEDITE SIMBOLI');
readln(s);
for i:=1 to length(s) do if s[i]='0' then inc(l);
if l=0 then writeln('nulei HET!!') else writeln(l,' nulei');
readln;
end;
Если помог, то жмите на весы))
from dark to light)

Последний раз редактировалось Алексей_2012; 14.04.2013 в 20:23.
Алексей_2012 вне форума Ответить с цитированием
Старый 14.04.2013, 21:27   #3
interacia
Пользователь
 
Аватар для interacia
 
Регистрация: 24.01.2013
Сообщений: 67
По умолчанию

Цитата:
№1.С клавиатуры вводится последовательность чисел оканчивающихся отрицательным числом. Определите, сколько было введено нулей? если нулей не было, то выведите об этом информацию.
Код:
program Series20;
var
Nuli:integer;
a:real;
begin
Nuli:=0;
Writeln('Введите чисела.');
Read(a);
While a>=0 do
begin
if a=0 then inc(Nuli);
Read(a);
end;
Writeln;
if Nuli = 0 then Writeln('Нулей в последовательности нет')
else Writeln('количество Нулей в последовательности равно ',Nuli);
end.
interacia вне форума Ответить с цитированием
Старый 14.04.2013, 23:44   #4
Reshebnik
 
Регистрация: 14.04.2013
Сообщений: 7
Печаль

Цитата:
Сообщение от interacia Посмотреть сообщение
Код:
program Series20;
var
Nuli:integer;
a:real;
begin
Nuli:=0;
Writeln('Введите чисела.');
Read(a);
While a>=0 do
begin
if a=0 then inc(Nuli);
Read(a);
end;
Writeln;
if Nuli = 0 then Writeln('Нулей в последовательности нет')
else Writeln('количество Нулей в последовательности равно ',Nuli);
end.
не работает
Reshebnik вне форума Ответить с цитированием
Старый 14.04.2013, 23:53   #5
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Цитата:
Сообщение от Reshebnik Посмотреть сообщение
не работает
Как определили?
(исправьте a:real; на a:integer;, чтобы сравнение с нулем было корректным, но и в таком виде программа мне выдала правильный ответ - наверное, испугалась выдать неправильный)

interacia, действительные числа нельзя сравнивать с нулем напрямую, а нужно с некоторой наперед заданной точностью (для надежности).
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )

Последний раз редактировалось BDA; 14.04.2013 в 23:56.
BDA вне форума Ответить с цитированием
Старый 14.04.2013, 23:58   #6
Reshebnik
 
Регистрация: 14.04.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Как определили?
(исправьте a:real; на a:integer;, чтобы сравнение с нулем было корректным, но и в таком виде программа мне выдала правильный ответ - наверное, испугалась выдать неправильный)

interacia, действительные числа нельзя сравнивать с нулем напрямую, а нужно с некоторой наперед заданной точностью (для надежности).
когда пишу числа в программу, он просто меня отправляет на другую строчку, будь это то чилом больше нуля или равным.
Reshebnik вне форума Ответить с цитированием
Старый 15.04.2013, 00:10   #7
BDA
МегаМодератор
СуперМодератор
 
Аватар для BDA
 
Регистрация: 09.11.2010
Сообщений: 7,291
По умолчанию

Код:
var
  Nuli: integer;
  a: integer;

begin
  Nuli := 0;
  Writeln('Введите чисела.');
  Read(a);
  While a >= 0 do
  begin
    if a = 0 then
      inc(Nuli);
    Read(a);
  end;
  if Nuli = 0 then
    Writeln('Нулей в последовательности нет')
  else
    Writeln('количество Нулей в последовательности равно ', Nuli);
  readln;
  readln;
end.
Все верно. В условии же сказано, что последовательность заканчивается ОТРИЦАТЕЛЬНЫМ числом, т.е. пока Вы не введете отрицательное число и не подтвердите ввод, программа будет в цикле работать.
Пишите язык программирования - это форум программистов, а не экстрасенсов. (<= это подпись )
BDA вне форума Ответить с цитированием
Старый 15.04.2013, 00:19   #8
Reshebnik
 
Регистрация: 14.04.2013
Сообщений: 7
По умолчанию

Цитата:
Сообщение от BDA Посмотреть сообщение
Код:
var
  Nuli: integer;
  a: integer;

begin
  Nuli := 0;
  Writeln('Введите чисела.');
  Read(a);
  While a >= 0 do
  begin
    if a = 0 then
      inc(Nuli);
    Read(a);
  end;
  if Nuli = 0 then
    Writeln('Нулей в последовательности нет')
  else
    Writeln('количество Нулей в последовательности равно ', Nuli);
  readln;
  readln;
end.
Все верно. В условии же сказано, что последовательность заканчивается ОТРИЦАТЕЛЬНЫМ числом, т.е. пока Вы не введете отрицательное число и не подтвердите ввод, программа будет в цикле работать.
понял уже ошибку, спасибо большое
Reshebnik вне форума Ответить с цитированием
Ответ


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



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
задача на while цикл dante92 Помощь студентам 1 27.12.2009 15:14
задача в ТР на цикл dante92 Помощь студентам 1 20.12.2009 15:14
Цикл с предусловием. ( цикл while) Цикл с постусловием. (цикл repeat ... until) Mr.User Помощь студентам 9 23.11.2007 01:34