ЕГ
Елена Горина

Правильное расположение вывода результа из цыкла. Паскаль

Вот условие:
Пользователь вводит n-раз число, при этом n-раз неизвестно.
Выход из цыкла при нуле. Подсчетать кол-во числел равным к двум, трем, и которые деляться на 2 и 3.
Исправьте код плиз:
program dz_pr1;

uses crt;
var n,k1,k2,k3,k4:integer;
Begin
clrscr;
repeat
write('Введите число: '); readln(n);
if (n = 2) then k1:=k1+1;
if (n = 3) then k2:=k1+1;
if (n mod 2=0) then k3:=k1+1;
if (n mod 3=0) then k4:=k1+1;
until n=0;
if (n = 2) then
writeln('Количество чисел равны двум = ',k1) else writeln;
if (n = 3) then
writeln('Количество чисел равны трем = ',k2) else writeln;
if (n mod 2=0) then
writeln('Количество чисел деленными на два = ',k3) else writeln;
if (n mod 3=0) then
writeln('Количество чисел деленными на три = ',k4) else writeln;
readkey;
END.
С расчетом проде все сделал правильно, но как вывести правильно результат, программеры помогите.

if (n = 2) then k1:=k1+1; - колво равно двум
if (n = 3) then k2:=k2+1; -колво равна трем
if (n mod 2=0) then k3:=k3+1; -колво дел на два
if (n mod 3=0) then k4:=k4+1;-колво дел на три

Вот добился результата вывода, чтобы например кол равным двум не показывалось. Кому надо берите.
program dz_pr1;
uses crt;
var n,k1,k2,k3,k4:integer;

begin
clrscr;
k1:=0; k2:=0; k3:=0; k4:=0;
repeat
write('Введите число: '); readln(n);
if (n = 2) then inc(k1);
if (n = 3) then inc(k2);
if (n mod 2=0) and (n0) then inc(k3);
if (n mod 3=0) and (n0) then inc(k4);
until (n=0);
if k1=0 then write else writeln('Количество чисел равны двум = ',k1);
if k2=0 then write else writeln('Количество чисел равны трем = ',k2);
if k3=0 then write else writeln('Количество чисел деленные на два= ',k3);
if k4=0 then write else writeln('Количество чисел деленные на три = ',k4);
end;
readkey;
END.

ЛФ
Людмила Фоменко

Надо переменные осмысленно называть, тогда ошибки будут очевиднее.
if (n = 2) then k1:=k1+1; {k1 - количество делящихся на 2, так? }
if (n = 3) then k2:=k1+1; {k2 - количество делящихся на 3... а почему на 1 больше, чем k2?}

ну и в конце - зачем проверки последнего значения (т. е. 0) перед выводом?

Похожие вопросы
Программа:вводишь число и он выводит тебе его перевертыш в паскале
Правильно ли у меня написано в паскале?
вывод матриц паскаль
Что нужно дописать в паскале, что бы матрица, которую я ввел, выводилась в правильном графическом виде.
Паскаль. Какая команда отвечает за ввод и вывод данных в формате .in и .out в паскале
Как изменить количество знаков после запятой в паскале НО НЕ ПРИ ВЫВОДЕ.
как разбить вывод на 2 оператора в паскале (TURBO PASCAL)
Как переработать программку на цыкл?
Как правильно написать (в паскале)
ПОЧЕМУ КОД НЕ ВЫВОДИ ПЕРЕМЕННУЮ C??? (ПАСКАЛЬ)