var
one, a: byte;
number: longint; { вводимое число не должно быть больше 2147483647}
begin
one:= 0;
writeln ('vvedite thislo'); { приглашение ввести число}
readln (number);
repeat { цикл с постусловием}
a:= number mod (10); { откусываем от числа последнюю цифру}
if a= 1 then { и проверяем её на равество 1}
one:= one + 1; { если она равна 1, то прибавляем счётчик}
number:= trunc (number / 10); { убираем насовсем последнюю цифру }
until number = 0; { если всё число проверили, то выходим из
цикла}
writeln (' v thisle ', one, ' edinith'); { печать количества единиц в числе}
readln;
end.
Другие языки программирования и технологии
Кто шарит в Borland Pascal помогите написать прогу
1 перевод числа в строку
2 перебор строки циклом по буквам сравнивая с эталоном '1'
3 если сравнение прошло успешно +1 к счетчику
--------------------------------------------------------------------
ODD помойму вычисляет четность если нет то
if (i mod 2 == 0) then четное знач +1
все остальное как в 1й задаче
2 перебор строки циклом по буквам сравнивая с эталоном '1'
3 если сравнение прошло успешно +1 к счетчику
--------------------------------------------------------------------
ODD помойму вычисляет четность если нет то
if (i mod 2 == 0) then четное знач +1
все остальное как в 1й задаче
var s,i:integer;
begin
readln(i); s:=0; repeat if i mod 10=1 then inc(s); i:=i div 10 until i=0;
writeln(s); readln
end.
var s,i:integer;
begin
readln(i); s:=0; repeat if not odd(i) then inc(s); i:=i div 10 until i=0;
writeln(s); readln
end.
Можно было бы написать короче, но это будет менее понятно.
А объяснение - проверяем последнюю цифру числа (в первой программе остаток от деления этого числа на 10, во второй можно просто проверить, четное ли число) , если соответствует условию, увеличиваем s на 1, после чего делим число на 10 и повторяем процесс, пока число не станет равно 0.
Числа - до 32000. Если надо больше, достаточно заменить слово integer на longint.
begin
readln(i); s:=0; repeat if i mod 10=1 then inc(s); i:=i div 10 until i=0;
writeln(s); readln
end.
var s,i:integer;
begin
readln(i); s:=0; repeat if not odd(i) then inc(s); i:=i div 10 until i=0;
writeln(s); readln
end.
Можно было бы написать короче, но это будет менее понятно.
А объяснение - проверяем последнюю цифру числа (в первой программе остаток от деления этого числа на 10, во второй можно просто проверить, четное ли число) , если соответствует условию, увеличиваем s на 1, после чего делим число на 10 и повторяем процесс, пока число не станет равно 0.
Числа - до 32000. Если надо больше, достаточно заменить слово integer на longint.
Здесь можно скачать книжки по Паскалю, я бы рекомендовал Фаронова, сам по нему учил )
http : // tp7 . info/ebook.php
http : // tp7 . info/ebook.php
Похожие вопросы
- ....Помогите написать проги на pascal....
- Помогите написать прогу на TURBO PASCAL...
- Помогите написать прогу!!!
- Помогите написать прогу на паскале
- Помогите написать прогу на паскале!
- Помогите написать прогу на Паскале, экзамен горит, очень нужно..
- s=loga(x+2)+sqrt(abs(logb(y+2))/(logc(z+2))) в pascal помогите написать процедуру
- Помогите написать прогу на С++
- Помогите написать прогу с++ ничего не помню как делать, хнык хнык (((
- Помогите написать прогу на с++.
В Паскале будет
if (i mod 2 = 0) then четное знач +1