Версия для печати темы

Нажмите сюда для просмотра этой темы в обычном формате

Форум «Всё о Паскале» _ Задачи _ Проверьте пожалуйста

Автор: goosberry 26.02.2009 22:15

Задача: в последовательности четырёх чисел, заданных с клавиатуры, найти количество нулей.
У меня получилась такая вот программка, только какая-то она примитивная...

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


Автор: Айра 27.02.2009 1:10

Да вроде так все.. А массивы проходили, может с ними делать? Или "найти количество нулей" - не чисел, равных нулю, а цифр=0 во всех этих числах wink.gif

Автор: goosberry 27.02.2009 1:20

С массивами я знакома, но здесь мы их ещё не разбирали, поэтому программа точно без массивов.

Автор: Lapp 27.02.2009 4:41

Любая программу будет смотреться примитивно, если в ней не соблюдается элементарное форматирование (отступы). И любая, даже самая простая программа, даже 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 27.02.2009 5:58

Цитата
С массивами я знакома, но здесь мы их ещё не разбирали
Циклы разбирали? (насколько я помню, циклы идут перед массивами) Читаешь число, сразу проверяешь его на близость к нулю. Если близко - увеличиваешь счетчик. И так 4 раза подряд... А потом содержимое счетчика печатаешь...

Автор: goosberry 28.02.2009 23:07

Циклом мне тоже пользоваться нельзя, т.к. тема "Алгоритмы разветвлённой структуры".
А за советы всем спасибо)) give_rose.gif

Автор: Lapp 1.03.2009 13:52

Цитата(goosberry @ 28.02.2009 19:07) *
т.к. тема "Алгоритмы разветвлённой структуры"
Фи.. это, выходит, тебе и мое решение не подходит. Тогда твое изначальное решение рулит!))