Информатика

15 724 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
20185#20185
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится минимальную цифру этого числа. Программист торопился и написал программу неправильно:
Паскаль Си
var N: longint;
    digit, min_digit: integer; 
begin
(*)
(1)  readln(N);
(2)  min_digit := 0;
(3)  while N > 0 do begin
(4)    digit := N mod 10;
(5)    if digit > min_digit then
(6)       min_digit := digit;
(7)    N := N div 10
(8)  end;
(9)  writeln ( min_digit)
end.
#include<stdio.h>
main(){
  int N;
  int digit, min_digit ;
(*)
(1)  scanf("%d",&N);
(2)  min_digit = 0;
(3)  while (N > 0) {
(4)    digit = N % 10;
(5)    if (digit > min_digit)
(6)       min_digit = digit;
(7)    N = N / 10;
(8)  }
(9)  printf("%d", min_digit );
}
Последовательно выполните следующее:
1.       Определите, что выведет программа при вводе числа 532 (выполните устно).
2.       Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
а)      выпишите строку, в которой сделана ошибка;
б)      укажите, как надо исправить ошибку -  приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, имеющую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

В качестве ответа загрузите исправленную программу, в которой добавлена строка на место (*). Строка должна содержать оператор вывода (с переходом на новую строку после выполнения) номеров строк, в которых допущена ошибка (выводить нужно ТОЛЬКО номера слитно без пробелов и запятых)
например:
Паскаль Си
...
begin
(*)  writeln('123');

... далее исправленная программа

end.
#include<stdio.h>
main(){
...
(*)  printf("123\n");
... далее исправленная программа
}
 

20184#20184
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число N, не превосходящее 109, и выводится произведение цифр этого числа.   Программист торопился и написал программу неправильно:  
Паскаль Си
var N, product: longint;
    digit: integer; 
begin
(*)
(1)  readln(N);
(2)  product := N mod 10;
(3)  while N >= 10 do begin
(4)    digit := N mod 10;
(5)    product := product * digit;
(6)    N := N div 10
(7)  end;
(8)  writeln ( product )
end.
#include<stdio.h>
main(){
  int N, product;
  int digit;
(*)
(1)  scanf("%d",&N);
(2)  product = N % 10;
(3)  while (N >= 10) {
(4)    digit = N % 10;
(5)    product = product * digit;
(6)    N = N / 10;
(7)  }
(8)  printf("%d", product );
}
Последовательно выполните следующее:
1.       Определите, что выведет программа при вводе числа 532 (выполните задание устно).
2.       Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
а)      выпишите строку, в которой сделана ошибка;
б)      укажите, как надо исправить ошибку -  приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, имеющую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

В качестве ответа загрузите исправленную программу, в которой добавлена строка на место (*). Строка должна содержать оператор вывода (с переходом на новую строку после выполнения) номеров строк, в которых допущена ошибка (выводить нужно ТОЛЬКО номера слитно без пробелов и запятых)
например:
Паскаль Си
...
begin
(*)  writeln('123');

... далее исправленная программа

end.
#include<stdio.h>
main(){
...
(*)  printf("123\n");
... далее исправленная программа
}

20183#20183
В корзине лежит a красных и b синих шаров. Из корзины наугад вынимают n шаров. Требовалось написать программу, которая определяет количество вариантов такого опыта (вариантом считаем пару чисел: количество вынутых красных и синих шаров). Программист торопился и написал программу неправильно: 

Паскаль Си
var n,a,b:integer;
begin
  readln(n, a, b);
  if a + b < n then writeln(0)
  else
    if a < b then
      if a < n then writeln(a+1)
    else
    if b < n then writeln(b+1)
    else writeln(n+1);
end.
#include<stdio.h>
main()
{
  int n,a,b;
  scanf("%d%d%d",&n,&a,&b);
  if (a + b < n) printf("0\n");
  else
    if (a < b) 
      if (a < n) printf("%d\n",a+1);
    else
    if (b < n) printf("%d\n",b+1);
    else printf("%d\n",n+1);
}

Последовательно выполните следующее:
1.       Определите, что выведет программа при n = 5, a = 3, b = 6 (выполните задание устно).
2.       Укажите значения n, a, b, при которых программа выдаёт неправильный ответ (выполните задание устно).
3.       Укажите, как нужно доработать программу, чтобы не было случаев её неправильной работы.

Доработанную программу прикрепите к ответу.

20142#20142
Для какого названия города истинно высказывание:
(Первая буква гласная /\ Последняя буква гласная) ~  Название содержит букву «м»)?
Знаком ~ обозначается операция эквивалентности (результат X ~ Y – истина, если значения X и Y совпадают).
1) Москва          2) Дюссельдорф            3) Амстердам  4) Атланта
20141#20141
Для какого названия станции метро истинно высказывание:
(Первая буква согласная Вторая буква согласная) ~  Название содержит букву «л»)? 
Знаком ~ обозначается операция эквивалентности (результат X ~ Y – истина, если значения X и Y совпадают).
1) Маяковская           2) Отрадное                     3) Волжская           4) Комсомольская
20137#20137
Для какого названия реки ложно высказывание:
 (Вторая буква гласная  → Предпоследняя буква согласная) /\   Первая буква стоит в алфавите раньше третьей?
1) ДУНАЙ           2) МОСКВА                       3) ДВИНА           4) ВОЛГА
20135#20135
Для какого имени истинно высказывание:
 (Первая буква согласная  → Вторая буква гласная) /\   Последняя буква согласная?
1) АЛИСА              2) МАКСИМ                3) СТЕПАН                    4) ЕЛЕНА
20134#20134
Для какого слова истинно высказывание:
¬ (Первая буква согласная  → (Вторая буква согласная \/   Последняя буква гласная))?
1) ГОРЕ                2) ПРИВЕТ                          3) КРЕСЛО          4) ЗАКОН
20133#20133
Для какого имени истинно высказывание:
¬ (Последняя буква гласная  → Первая буква согласная) /\   Вторая буква согласная?
1) ИРИНА           2) АРТЁМ                           3) СТЕПАН          4) МАРИЯ
20131#20131
Для какого имени истинно высказывание:
¬ (Первая буква согласная  → Последняя буква согласная) /\   Вторая буква согласная?
1) ИРИНА           2) СТЕПАН                          3) КСЕНИЯ          4) МАРИЯ
20123#20123
Для какого слова ложно высказывание:
Первая буква слова согласная  → (Вторая буква имени гласная /\ Последняя буква слова согласная)?
1) ЖАРА                 2) ОРДА              3) ОГОРОД        4) ПАРАД
Поделиться
Класснуть