Помощь - Поиск - Пользователи - Календарь
Полная версия: Проверьте пожалуйста
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
goosberry
Задача: в последовательности четырёх чисел, заданных с клавиатуры, найти количество нулей.
У меня получилась такая вот программка, только какая-то она примитивная...
program zadacha;
uses crt;
var a,b,c,d:real;
i:integer;
begin clrscr;
i:=0;
write('a=');
readln(a);
write('b=');
readln(b);
write('c=');
readln©;
write('d=');
readln(d);
if a=0 then i:=i+1;
if b=0 then i:=i+1;
if c=0 then i:=i+1;
if d=0 then i:=i+1;
writeln ('Количество нулей = ',i);
readkey;
end.


М
Просьба использовать тэги [cоde=pas] ... [/cоde] для паскалевского кода.
Исправлено.
Lapp

Айра
Да вроде так все.. А массивы проходили, может с ними делать? Или "найти количество нулей" - не чисел, равных нулю, а цифр=0 во всех этих числах wink.gif
goosberry
С массивами я знакома, но здесь мы их ещё не разбирали, поэтому программа точно без массивов.
Lapp
Любая программу будет смотреться примитивно, если в ней не соблюдается элементарное форматирование (отступы). И любая, даже самая простая программа, даже 2х2, будет выглядеть профессионально, если она правильно сформатирована.

А если хочешь пооригинальнее, можешь сделать так, например:
program zadacha;
uses
crt;
var
a,b,c,d:real;

begin
clrscr;
write('a=');
readln(a);
write('b=');
readln(b);
write('c=');
readln©;
write('d=');
readln(d);
writeln ('Количество нулей = ',Byte(a=0)+Byte(b=0)+Byte(c=0)+Byte(d=0));
readkey;
end.

Еще одно замечание: действительные числа неправильно сравнивать с нулем знаком равенства. Ошибки вычислений всегда были, есть и будут. Для только что введенных с клавиатуры чисел это еще сработает, но для результатов вычислений - практически никогда. Сравнивать надо так:
Abs(a)<e
- где e - допустимая ошибка.

И обрати внимание на замечание Айры про нули в десятичной записи - не это ли имелось в виду?

Добавлено через 3 мин.
И последнее: убери clrscr. Это mauvais ton smile.gif
volvo
Цитата
С массивами я знакома, но здесь мы их ещё не разбирали
Циклы разбирали? (насколько я помню, циклы идут перед массивами) Читаешь число, сразу проверяешь его на близость к нулю. Если близко - увеличиваешь счетчик. И так 4 раза подряд... А потом содержимое счетчика печатаешь...
goosberry
Циклом мне тоже пользоваться нельзя, т.к. тема "Алгоритмы разветвлённой структуры".
А за советы всем спасибо)) give_rose.gif
Lapp
Цитата(goosberry @ 28.02.2009 19:07) *
т.к. тема "Алгоритмы разветвлённой структуры"
Фи.. это, выходит, тебе и мое решение не подходит. Тогда твое изначальное решение рулит!))
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.