AlekseiMardanova
?>

Определить, является ли введенное число цифрой?

Информатика

Ответы

goryavinan
1. Если буквально по тексту задания, то число должно быть должно быть однозначным, тогда число будет соответствовать цифре.

2. Если имелось ввиду, что вводится символ и надо выяснить является ли введенный символ цифрой, то можно применить функцию StrToInt от введенного символа, если в результате получится цифра, то вводили символ - цифру.

Для первого варианта можно попробовать такое решение:

Var
  a :integer;
Begin
  writeln('Введите цифру ');
  readln(a);
  case a of
    0 : writeln ('ноль');
    1 : writeln ('один');
    2 : writeln ('два');
    3 : writeln ('три');
    4 : writeln ('четыре');
    5 : writeln ('пять');
    6 : writeln ('шесть');
    7 : writeln ('семь');
    8 : writeln ('восемь');
    9 : writeln ('девять')
  else writeln ('Это число не цифра');
  end;
end.
  
Кристина910
См. картинку во вложении.
ответ: 1

Такие задания решаются с трассировочной таблицы.
Выписываешь все переменные, которые есть в программе (если массив, то отдельно выписываешь каждую ячейку). Сколько переменных - столько столбцов в таблице. Потом притворяешься компьютером и выполняешь программу команда за командой, при этом записывая все изменения значений переменных по такому правилу:
1) если значение переменной ещё не определено, ничего не пишешь (оставляешь пустые клетки);
2) если значение переменной изменилось в ходе выполнения команды - пишешь новое значение (в моей таблице выделены жёлтым);
3) если значение переменной НЕ изменилось в ходе выполнения команды - пишешь старое значение (то есть переписываешь его из клетки, которая на одну выше).
В конце смотришь, значение какой переменной должен напечатать компьютер - это и есть ответ.
ibarskova1542
1-задача
var    A:array[1..5] of integer;
 s,P,K,i,c :integer;
begin
   for I:=1 to 5 do begin
      write('ведите число ');
      readln(A[i]);
   end;
   S:=0; c:=0;
   P:=1; K:=0;
   for I:=1 to 5 do begin
      if  a[i]>0 then begin S:=S+A[i]; c:=c+1; end;
      if (a[i] mod 12)<>0 then P:=P*A[i];
      if (a[i]mod 2)=0 then K:=K+1;
   end;
   writeln('средняя сумма положительных чисел= ',S/c) ;
   writeln('произведение чисел не кратных 12= ',P) ;
   writeln('количество чётных чисел= ',k) ;
end.
можно сделать и с одним циклом. если надо - отпишись.

задача 2
расчёт с учётом того что у сотрудников разная ЗП
тоже можно сделать с одним  циклом.
var    A:array[1..5] of integer;
   i,zp:integer;
begin
   for I:=1 to 5 do begin
    write('ведите зарплату сотрудника ',i,': ');
    readln(A[i]);
   end;
  ZP:=0;
  for I:=1 to 5 do ZP:=ZP+A[i];
  write('общая сумма=',ZP);
   end.
задача 3
var    A:array[1..20] of integer;
   i,P,S,summ:integer;
begin
   for I:=1 to 20 do begin
    write('ведите число ');
    readln(A[i]);
   end;
  P:=1; S:=0;Summ:=0;
  for I:=1 to 20 do begin
    if A[i]>8 then  begin P:=P*a[i];S:=S+1; end;
    if (A[i]mod 15)<>0 then summ:=summ+A[i];
  end;
  writeln('среднее произведение чисел больше 8= ',P/S);
  write('семма чисел не кратных 15= ',summ);
   end.

и это тоже можно с одним циклом

Ответить на вопрос

Поделитесь своими знаниями, ответьте на вопрос:

Определить, является ли введенное число цифрой?
Ваше имя (никнейм)*
Email*
Комментарий*

Популярные вопросы в разделе

Полковников_Милана
kolefe22171
olimp201325
Vladimir1172
Юрий197
olegmgu1
Ofelya1308
rodsher7740
olga0909196323
Шапкина1531
stairov536
dmitrijku
nst-33764
Yelena_Gennadevna
Giurievna1977