Другие языки программирования и технологии
Помогите написать программу на паскале
Написать программу вычисления суммы цифр введенного с клавиатуры четырехзначного числа. при вводе 0 - выход из программы. если число больше 9999 - выдать сообщение об ошибке
program sumator;
uses crt;
var c:integer;
ed,des,sot,tis,sum:real;
begin
clrscr;
repeat
writeln ('Введите число');
readln (c);
if c>9999 then writeln('Ошибка') else begin
ed:=c div 10;
ed:=c - ed*10;
des:=c div 100;
des:=(c - des*100 - ed)/10;
sot:=c div 1000;
sot:=(c-sot*1000 - (des*10+ed))/100;
tis:=(c-(sot*100+des*10+ed))/1000;
sum:=ed+des+sot+tis;
writeln ('Сумма цифр = ',sum:2:0);
end;
until c=0;
end.
uses crt;
var c:integer;
ed,des,sot,tis,sum:real;
begin
clrscr;
repeat
writeln ('Введите число');
readln (c);
if c>9999 then writeln('Ошибка') else begin
ed:=c div 10;
ed:=c - ed*10;
des:=c div 100;
des:=(c - des*100 - ed)/10;
sot:=c div 1000;
sot:=(c-sot*1000 - (des*10+ed))/100;
tis:=(c-(sot*100+des*10+ed))/1000;
sum:=ed+des+sot+tis;
writeln ('Сумма цифр = ',sum:2:0);
end;
until c=0;
end.
Вот программа с защитой от неправильного ввода значений:
var S : String; N, Sum : Byte; Err : Boolean;
begin
repeat
Write('Введите число от 0 до 9999 : '); ReadLn(S);
if Length(S) > 4 then
WriteLn('Введённое значение больше 4 символов. ')
else
begin
Err := False;
Sum := 0;
for N := 1 to Length(S) do
if S[N] in [#48..#57] then
Sum := Sum + Ord(S[N]) - 48
else
Err := True;
if Err then
WriteLn('В ведённом числе присутствуют символы не относящиеся к цифрам! ')
else
WriteLn('Сумма введённых цифр = ', Sum);
end;
until S = '0';
WriteLn('Программа завершила свою работу. ');
end.
var S : String; N, Sum : Byte; Err : Boolean;
begin
repeat
Write('Введите число от 0 до 9999 : '); ReadLn(S);
if Length(S) > 4 then
WriteLn('Введённое значение больше 4 символов. ')
else
begin
Err := False;
Sum := 0;
for N := 1 to Length(S) do
if S[N] in [#48..#57] then
Sum := Sum + Ord(S[N]) - 48
else
Err := True;
if Err then
WriteLn('В ведённом числе присутствуют символы не относящиеся к цифрам! ')
else
WriteLn('Сумма введённых цифр = ', Sum);
end;
until S = '0';
WriteLn('Программа завершила свою работу. ');
end.
На халяву хочешь?
на халяву только опишу алгоритм примерный
тут же все просто. Сначала делаешь условие если введенное число = 0 то выход иначе проверка
если введенное число больше 9999 то вывод сообщения об ошибке иначе
s=0
x=введенное число
цикл (пока х больше ноля)
у=остаток от деления х на 10
х=деление без остатка х на 10
s=s+y
выход из цикла
вывод s на экран
Примерно так. Цикл выбрать какой удобнее
на халяву только опишу алгоритм примерный
тут же все просто. Сначала делаешь условие если введенное число = 0 то выход иначе проверка
если введенное число больше 9999 то вывод сообщения об ошибке иначе
s=0
x=введенное число
цикл (пока х больше ноля)
у=остаток от деления х на 10
х=деление без остатка х на 10
s=s+y
выход из цикла
вывод s на экран
Примерно так. Цикл выбрать какой удобнее
Похожие вопросы
- Помогите написать программу на Паскале!
- Ребят, помогите написать программу для Паскаля!
- помогите написать программу на паскале
- помогите написать программу на паскале!!! если можно напишите в комментах что где делаете!!!
- Помогите написать программу! Турбо Паскаль 7.0
- Помогите написать программу в Паскале, пожалуйста. см ниже
- Помогите написать программу на Паскале
- Помогите написать программу в паскале
- Помогите написать программу по паскалю для задания! ( см. внутри)
- помогите написать программу на паскаль Заданное натуральное число не превосходящее 1000 записать прописью, то есть выве