Информатика

15 724 задачивместе с подтемами
Число у задачи — рейтинг сложности, слово рядом — насколько она трудна по сравнению с другими задачами такого же типа. Шкалы задач с ответом и задач с кодом между собой не сравниваются. Рядом — счётчики попыток: успешные, неуспешные.
Напишите программу, которая вычисляет значение \(y = 4\cdot(x–3)^6 – 7\cdot(x–3)^3 + 2\), при заданном значении x (x - целое число, x  <10).

Входные данные
На вход программе подается одно число - значение переменной x.

Выходные данные

Программа должна вывести значение y.
 
Примеры
Входные данные Выходные данные
1 5 202
Составить программу вывода на экран числа, вводимого с клавиатуры. После вводимого числа должно следовать сообщение "It was entered".
 
Пример
Входные данные Выходные данные
1 5 5 It was entered

Громозека любит печеньки, на которых записаны числа. Громозека будет есть печеньку, если на ней написано комфортное для него число. Громозека считает число комфортным, если оно является точной степенью двойки.  В руках у Громозеки сейчас печенька, на которой написано число N. Выведите слово YES, если Громозека съест эту печеньку и слово NO в противном случае.

Операцией возведения в степень пользоваться нельзя!
 

Входные данные

Вводится натуральное число N (N < 109).
 

Выходные данные

Выведите ответ на задачу.

 
Примеры
Входные данные Выходные данные
1 1 YES
2 4 YES
3 5 NO
 
20245#20245
В метании молота состязается n спортcменов. Каждый из них сделал m бросков. Побеждает спортсмен, у которого максимален наилучший бросок. Если таких несколько, то из них побеждает тот, у которого наилучшая сумма результатов по всем попыткам. Если и таких несколько, победителем считается спортсмен с минимальным номером. Определите номер победителя соревнований.

Формат входных данных

Программа получает на вход два числа n и m (20<=n,m<=20), являющиеся числом строк и столбцов в массиве. Далее во входном потоке идет n строк по m чисел, являющихся элементами массива.

Формат выходных данных

Программа должна вывести одно число - номер победителя соревнований. Не забудьте, что  строки  (спортсмены) нумеруются с 0.

Пример

Ввод

Вывод

 4 3
 8 8 8
 5 9 3
 9 4 7
 6 6 2
2 
 

20244#20244
В массиве хранится информация о количестве людей, живущих на каждом из 15 этажей дома (на первом этаже — в первом элементе массива, на втором — во втором и т. д.). Определить два этажа, на которых проживает меньше всего людей. (Если минимальное количество жителей одинаково на 2х и более этажах, то вывести наименьшие этажи ) 
20194#20194
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество единиц в двоичной записи этого числа. Программист торопился и написал программу неправильно.
Паскаль Си
var x, cnt: integer; 
begin
(*)
(1)  readln(x);
(2)  cnt := 0;
(3)  while x > 0 do begin
(4)    cnt := cnt + 1;
(5)    x := x mod 2;
(6)  end;
(7)  writeln (cnt)
end.
#include<stdio.h>
main(){
  int x, cnt;
(*)
(1)  scanf("%d",&x);
(2)  cnt = 0;
(3)  while (x > 0) {
(4)    cnt = cnt + 1;
(5)    x = x % 2;
(6)  }
(7)  printf("%d", cnt);
}
 
 
Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 6.
2. Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.


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

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

end.
#include<stdio.h>
main(){
...
(*)  printf("123\n");
... далее исправленная программа
}
20193#20193
Требовалось написать программу, при выполнении которой с клавиатуры считывается натуральное число x, не превосходящее 1000, и выводится количество значащих цифр в двоичной записи этого числа. Программист торопился и написал программу неправильно.
Паскаль Си
var x, cnt: integer; 
begin
(*)
(1)  readln(x);
(2)  cnt := 0;
(3)  while x > 0 do begin
(4)    cnt := cnt + x mod 2;
(5)    x := x div 10;
(6)  end;
(7)  writeln (cnt)
end.
#include<stdio.h>
main(){
  int x, cnt;
(*)
(1)  scanf("%d",&x);
(2)  cnt = 0;
(3)  while (x > 0) {
(4)    cnt = cnt + x % 2;
(5)    x = x / 10;
(6)  }
(7)  printf("%d", cnt);
}
 

Последовательно выполните следующее:
1. Напишите, что выведет эта программа при вводе числа 15.
2. Приведите пример такого числа x, что, несмотря на ошибки, программа печатает правильный ответ.
3. Найдите все ошибки в этой программе (их может быть одна или несколько). Известно, что каждая ошибка затрагивает только одну строку и может быть исправлена без изменения других строк. Для каждой ошибки:
1) выпишите строку, в которой сделана ошибка;
2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.


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

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

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


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

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

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


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

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

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

20190#20190
На вход программы поступают 4 неотрицательных целых числа, не превышающие 1000, среди которых могут быть одинаковые. Нужно написать программу, которая выводит количество чисел, кратных 3, и максимальное из этих чисел. Если среди входных данных нет чисел, кратных трёх, программы должна вывести слово 'NO'. Для решения этой задачи ученик написал такую программу:
 
Паскаль Си
const n = 4;
var i, x: integer;
var maximum, count: integer;
begin
(*)
(1)  count := 0;
(2)  maximum := 999;
(3)  for i:=1 to n do begin
(4)    read( x );
(5)    if x mod 3 = 0 then begin
(6)      count := count + 1;
(7)      if x < maximum then
(8)         maximum := x;
(9)    end;
(10)  end;
(11)  if count > 0 then begin
(12)    writeln(count);
(13)    writeln(maximum);
(14)  end
(15)  else
(16)    writeln('NO');                 
end.
#include<stdio.h>
main(){
  conts int n=4;  
  int i, x;
  int maximum, count;
(*)
(1)  count = 0; 
(2)  maximum=999;
(3)  for(i=1;i<=n;i++){
(4)   scanf("%d",&x);
(5)   if (x % 3 == 0) {
(6)    count = count +1;
(7)    if (x < maximum)
(8)       maximum = x;
(9)    } 
(10)  }
(11) if (count>0) {
(12)    print("%d\n",count);
(13)    print("%d\n", maximum);
(14) } 
(15) else
(16)    printf("NO");
}
 

Последовательно выполните следующее.
1.       Напишите, что выведет эта программа при вводе чисел 2  9  4  3.
2.       Приведите пример такой последовательности, содержащей число, кратное 3, что, несмотря на ошибки, программа выдаст верный ответ.
3.       Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки: выпишите строку, в которой сделана ошибка, и приведите правильный вариант
строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.

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

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

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

20189#20189
Дано натуральное число N, не превосходящее 108. Необходимо найти и вывести число, которое получится при записи N справа налево и удалении всех единиц. Ведущие нули выводить не надо. Если в числе N нет цифр кроме единиц и нулей, необходимо вывести 0. Например, при вводе числа 1984 нужно вывести 489, а при вводе 2001 нужно вывести 2. Для решения этой задачи ученик написал такую программу:
 
Паскаль Си
var n, m: longint;
    d: integer;
begin
(*)
(1)  read(n);
(2)  m := 0;
(3)  while n>=1 do begin
(4)    d := n mod 10;
(5)    if d > 1 then begin
(6)      m := 10*d + m;
(7)    end;
(8)    n:= (n – d) div 10;
(9)  end;
(10)  write(m);
end.
#include<stdio.h>
main(){
  int n, m,d;
(*)
(1)  scanf("%d",&n);
(2)  m=0;
(3)  while (n >= 1) {
(4)    d = n % 10;
(5)    if (d > 1){
(6)       m = 10*d + m;
(7)    } 
(8)    n = (n-d) / 10;
(9)  }
(10)  printf("%d", m);
}
Последовательно выполните следующее.
1.       Напишите, что выведет эта программа при вводе числа 1984.
2.       Приведите пример числа, при вводе которого программа выдаст верный ответ.
3.       Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки: выпишите строку, в которой сделана ошибка, и приведите правильный вариант
строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.

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

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

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

20188#20188
Требовалось написать программу, которая получает на вход натуральное число N, не превосходящее 109, и выводит число, которое получается из N после удаления всех единиц; порядок остальных цифр при этом не меняется. Например, число 19520125 должно быть преобразовано в число 952025. Число, в котором все цифры – единицы и нули, должно быть преобразовано в 0. Незначащие нули в старших разрядах полученного числа печатать не нужно. Программист торопился и написал программу неправильно.
Паскаль Си
var N, R, T: longint;
   d: integer;
begin
(*)
(1)  readln(N);
(2)  R:=0;
(3)  T:=1;
(4)  while N>0 do begin
(5)    d := N mod 10;
(6)    if d<>1 then begin
(7)      R := R + d*T;
(8)      T := T+1
(9)    end;
(10)    N := N div 10;
(11)  end;
(12)  writeln(T);
end.
#include<stdio.h>
main(){
  int N, R, T;
  int d;
(*)
(1)  scanf("%d",&N);
(2)  R=0;
(3)  T=1;
(4)  while (N > 0) {
(5)    d = N % 10;
(6)    if (d!=1){
(7)       R = R + d*T;
(8)       T = T+1;
(9)    } 
(10)    N = N / 10;
(11)  }
(12)  printf("%d", T);
}

Последовательно выполните следующее.
1.       Напишите, что выведет эта программа при вводе числа 314.
2.       Найдите все ошибки в этой программе (их может быть одна или несколько). Для каждой ошибки:
1) Выпишите строку, в которой сделана ошибка.
2) Укажите, как исправить ошибку – приведите правильный вариант строки.
Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения.

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

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

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

20187#20187
Требовалось написать программу, при выполнении которой с клавиатуры вводится натуральное число, не превосходящее 108, и выводится его первая (старшая) цифра. Ученик написал такую программу:
Паскаль Си
var n: longint;
begin
(*)
(1)  readln(n);
(2)  while n > 10 do begin
(3)    n := n mod 10
(4)  end;
(5)  writeln ( n )
end.
#include<stdio.h>
main(){
  int n;
(*)
(1)  scanf("%d",&n);
(2)  while (n > 10) {
(3)    n = n % 10;
(4)  }
(5)  printf("%d", n);
}
 
Последовательно выполните следующее.
1.       Напишите, что выведет эта программа при вводе числа 1984.
2.       Приведите пример числа, при вводе которого программа выдаст верный ответ.
3.       Найдите в программе все ошибки (их может быть одна или несколько).
Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.
Обратите внимание: вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

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

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

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

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

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

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

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

Поделиться
Класснуть