Mail.ruПочтаМой МирОдноклассникиВКонтактеИгрыЗнакомстваНовостиКалендарьОблакоЗаметкиВсе проекты

Помогите с программой в паскале

AMA_Lucifer Ученик (13), закрыт 10 месяцев назад
 var a:integer; 
begin
Read(a);
if a mod 2 <> 0 then
end.
есть прога которая находи нечет число как посчитать кол - во нечет цифр в числе
Лучший ответ
Ксения Райт Гений (85710) 1 год назад
Лучше так:
 uses crt; 
var a: int64;
b: integer = 0;
begin
clrscr();
readln(a);
if a < 0 then a := -a;
while a > 0 do
begin
if odd(a mod 2) then b := b + 1;
a := a div 10
end;
writeln('Количество нечётных цифр ', b)
end.
Остальные ответы
Андрей Панарин Искусственный Интеллект (225026) 1 год назад
Нужно перебрать все цифры числа, проверить четность каждой из них и увеличивать счетчик, когда увидим нечетную цифру.

Перебрать можно как минимум двумя способами: либо превратить число в строку и разбирать ее отдельные символы, либо делить число на 10 с остатком, отсекая каждый раз одну младшую цифру.

Второй способ элегантен. Смотрите, какой цикл нам нужен:

1342 mod 10 = 2 (остаток - последняя цифра)
1342 div 10 = 134 (частное - оставшиеся цифры)

134 mod 10 = 4 (еще одна цифра)
134 div 10 = 13

13 mod 10 = 3 (еще одна цифра)
13 div 10 = 1

1 mod 10 = 1 (еще одна цифра)
1 div 10 = 0

Получили ноль, заканчиваем цикл.

Остатки от деления числа 1342:
2, 4, 3, 1 - по сути, все цифры этого числа справа налево.

Реализовать можно так:
 n := 0; {Счетчик}
while a <> 0 do
begin
digit := a mod 10;
if digit mod 2 <> 0 then n := n + 1; {Нашли нечетную цифру}
a := a div 10;
end;
WriteLn(n);
Разумеется, недостающие переменные n и digit следует объявить заранее в разделе var.
AMA_LuciferУченик (13) 1 год назад
Дан массив размера N. Вывести его элементы в обратном порядке.
а как выполнить это задание скажите пожалуйста
Андрей Панарин Искусственный Интеллект (225026) Если массив a объявлен в пределах от 1 до N, то вам нужен цикл для i, который, начиная с N, идет вниз до 1. И в цикле вывод i-того элемента:
 const
  N = 10;
  a: array [1..N] of integer = (3, 14, 15, 92, 6, 5, 3, 5, 8, 9);
var
  i: integer;
begin
  for i := N downto 1 do
    WriteLn(a[i]);
end. 
Похожие вопросы