СДАМ ГИА






Каталог заданий. Решение уравнений и неравенств
Пройти тестирование по этим заданиям
Вернуться к каталогу заданий
Версия для печати и копирования в MS Word
1
Задание 24 № 3646

Требовалось на­пи­сать программу, ко­то­рая ре­ша­ет не­ра­вен­ство «(x - а) / (bx) > 0» от­но­си­тель­но x для любых не­ну­ле­вых чисел а и b , вве­ден­ных с клавиатуры. Все числа счи­та­ют­ся действительными. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му неправильно.

 

ПаскальБейсикСи
var a,b,x: real;

begin

readln(a,b,x);

if b>0 then

write ('x > ', a, ' или x < 0')

else

if a > 0 then

write ('0 < x <', a)

else

write (a, '< x < 0 ');

end.

INPUT a, b, x

IF b > 0 THEN

PRINT "x > ",a," или x<0"

ELSE

IF a > 0 THEN

PRINT "0 < x < ",a

ELSE

PRINT a," < x < 0"

ENDIF

ENDIF

END

void main(void)

{ float a,b,x;

scanf("%f%f%f", &a,&b,&x);

if (b > 0)

printf("x > %f или x < 0 ", a);

else

if (a>0)

printf("0 < x < %f",a);

else

printf("%f < x < 0",a);

}

 

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

1) При­ве­ди­те при­мер таких чисел а, b, х, при ко­то­рых про­грам­ма не­вер­но ре­ша­ет по­став­лен­ную задачу.

2) Укажите, какая часть про­грам­мы яв­ля­ет­ся лишней.

3) Укажите, как нужно до­ра­бо­тать программу, чтобы не было слу­ча­ев ее не­пра­виль­ной работы. (Это можно сде­лать не­сколь­ки­ми способами, по­это­му можно ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной программы).


2
Задание 24 № 7935

Для за­дан­но­го по­ло­жи­тель­но­го ве­ще­ствен­но­го числа A не­об­хо­ди­мо найти ми­ни­маль­ное целое число K, при ко­то­ром вы­пол­ня­ет­ся не­ра­вен­ство Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал такую программу.

 

 

БейсикPython

DIM A, S AS DOUBLE

DIM K AS INTEGER

INPUT A

K = 0

S = 1

WHILE S >= A

K = K + 1

S = S + 1.0/K

WEND

PRINT K

END

a = float(input())

k = 0

s = 1

while s>=a:

    k = k + 1

    s = s + 1.0/k

print(k)

ПаскальАлгоритмический язык

var a, s: real;

k: integer;

begin

read(a);

k := 0;

s := 1;

while s>=a do begin

k := k + 1;

s := s + 1.0/k;

end;

write(k);

end.

алг

нач

вещ a, s

цел k

ввод a

k := 0

s := 1

нц пока s>=a

k := k + 1

s := s + 1.0/k

кц

вывод k

кон

Си

#include

int main(){

double a, s;

int k;

scanf("%lf",&a);

k = 0;

s = 1;

while (s>=a) {

k = k + 1;

s = s + 1.0/k;

}

printf("%d", k);

return 0;

}

 

 

Последовательно вы­пол­ни­те следующее.

1. Напишите, что вы­ве­дет эта про­грам­ма при вводе числа 1.4.

2. Сколь­ко су­ще­ству­ет на­ту­раль­ных чисел А, при вводе ко­то­рых про­грам­ма вы­ве­дет ответ 1?

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько).

Для каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде. Об­ра­ти­те внимание: Вам нужно ис­пра­вить приведённую программу, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные строки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные строки: за исправления, внесённые в строки, не со­дер­жа­щие ошибок, баллы будут снижаться.

Источник: СтатГрад: Тренировочная работа по ин­фор­ма­ти­ке 27.02.2015 ва­ри­ант ИН10901.

3
Задание 24 № 8000

Для за­дан­но­го по­ло­жи­тель­но­го ве­ще­ствен­но­го числа A не­об­хо­ди­мо найти ми­ни­маль­ное целое число K, при ко­то­ром вы­пол­ня­ет­ся не­ра­вен­ство Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал такую программу.

 

 

БейсикPython

DIM A, S AS DOUBLE

DIM K AS INTEGER

INPUT A

K = 1

S = 1

WHILE S <= A

K = K + 1

S = 1.0/K

WEND

PRINT K

END

a = float(input())

k = 1

s = 1

while s<=a:

k = k + 1

s = 1.0/k

print(k)

ПаскальАлгоритмический язык

var a, s: real;

k: integer;

begin

read(a);

k := 1;

s := 1;

while s<=a do begin

k := k + 1;

s := 1.0/k;

end;

write(k);

end.

алг

нач

вещ a, s

цел k

ввод a

k := 1

s := 1

нц пока s<=a

k := k + 1

s := 1.0/k

кц

вывод k

кон

Си

#include

int main(){

double a, s;

int k;

scanf("%lf",&a);

k = 1;

s = 1;

while (s<=a) {

k = k + 1;

s = 1.0/k;

}

printf("%d", k);

return 0;

}

 

 

Последовательно вы­пол­ни­те следующее.

1. Напишите, что вы­ве­дет эта про­грам­ма при вводе числа 0.4.

2. Сколь­ко существует на­ту­раль­ных чисел А, при вводе ко­то­рых программа вы­ве­дет ответ 2?

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько).

Для каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде. Об­ра­ти­те внимание: Вам нужно ис­пра­вить приведённую программу, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные строки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные строки: за исправления, внесённые в строки, не со­дер­жа­щие ошибок, баллы будут снижаться.

Источник: СтатГрад: Тре­ни­ро­воч­ная работа по ин­фор­ма­ти­ке 27.02.2015 ва­ри­ант ИН10902.
Пояснение · ·

4
Задание 24 № 9774

Дано целое по­ло­жи­тель­ное число N. Не­об­хо­ди­мо опре­де­лить наи­мень­шее целое число K, для ко­то­ро­го вы­пол­ня­ет­ся неравенство:

 

1 + 2 + … + K > N.

 

Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал программу, но, к сожалению, его про­грам­ма неправильная.

Ниже эта про­грам­ма для Ва­ше­го удоб­ства при­ве­де­на на пяти язы­ках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE N > 0

  N = N - K

  K = K + 1

WEND

PRINT K

END

n = int(input())

k = 1

while n>0:

  n = n - k

  k = k + 1

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 1;

  while n>0 do begin

    n := n- k;

    k := k + 1;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 1

  нц пока n>0

    n := n - k

    k := k + 1

  кц

  вывод k

кон

Си

#include <stdio.h>

int main(){

int n, k;

scanf("%d",&n);

k = 1;

while (n>0) {

n = n - k;

k = k + 1;

}

printf("%d", k);

return 0;

}

 

Последовательно вы­пол­ни­те следующее.

1. При­ве­ди­те при­мер числа N, при вводе ко­то­ро­го про­грам­ма вы­ве­дет не­вер­ный ответ. Ука­жи­те вер­ный ответ и ответ, ко­то­рый вы­ве­дет программа.

2. При­ве­ди­те при­мер числа N, при вводе ко­то­ро­го про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько). Для каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде.

Достаточно ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка программирования.

Обратите внимание: Вам нужно ис­пра­вить приведённую программу, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные строки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные строки: за исправления, внесённые в строки, не со­дер­жа­щие ошибок, баллы будут снижаться.

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та по ин­фор­ма­ти­ке 02.12.2015 ИН10203

5
Задание 24 № 9810

Дано целое по­ло­жи­тель­ное число N. Не­об­хо­ди­мо опре­де­лить наи­мень­шее целое число K, для ко­то­ро­го вы­пол­ня­ет­ся неравенство:

 

1 + 2 + … + KN.

 

Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал программу, но, к сожалению, его про­грам­ма неправильная.

Ниже эта про­грам­ма для Ва­ше­го удоб­ства при­ве­де­на на пяти язы­ках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE N >= 0

  K = K + 1

  N = N - K

WEND

PRINT K

END

n = int(input())

k = 1

while n>=0:

  k = k + 1

  n = n - k

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 1;

  while n>=0 do begin

    k := k + 1;

    n := n- k;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 1

  нц пока n>=0

    k := k + 1

    n := n - k

  кц

  вывод k

кон

Си

#include <stdio.h>

int main(){

int n, k;

scanf("%d",&n);

k = 1;

while (n>=0) {

k = k + 1;

n = n - k;

}

printf("%d", k);

return 0;

}

 

Последовательно вы­пол­ни­те следующее.

1. При­ве­ди­те при­мер числа N, при вводе ко­то­ро­го про­грам­ма вы­ве­дет не­вер­ный ответ. Ука­жи­те вер­ный ответ и ответ, ко­то­рый вы­ве­дет программа.

2. При­ве­ди­те при­мер числа N, при вводе ко­то­ро­го про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько). Для каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде.

Достаточно ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка программирования.

Обратите внимание: Вам нужно ис­пра­вить приведённую программу, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные строки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные строки: за исправления, внесённые в строки, не со­дер­жа­щие ошибок, баллы будут снижаться.

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та по ин­фор­ма­ти­ке 02.12.2015 ИН10204

6
Задание 24 № 3649

Требовалось на­пи­сать программу, ко­то­рая решает урав­не­ние от­но­си­тель­но х для лю­бо­го числа с, вве­ден­но­го с клавиатуры. Все числа счи­та­ют­ся действительными. Про­грам­мист торопился и на­пи­сал программу неправильно.

 

ПаскальБейсикСи

var с,х: real;

begin

readln (с,х);

if с>0 then

write ('нет решений')

else

write ('х=',sqrt(-с),

' или х=',-sqrt(-с));

end.

INPUT с, х

IF с>0 THEN

PRINT "нет решений"

ELSE

PRINT "х=",SQR(-с)

или х=",-SQR(-с)

ENDIF

END

void main(void)

{ float c,x;

scanf ("%f %f",&c,&x);

if (c>0)

printf("нет решений");

else

printf("x=%f

или x=%f",sqrt(-с), -sqrt(-c));

}

 

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

1) Приведите при­мер таких чисел с, х, при ко­то­рых программа не­вер­но решает по­став­лен­ную задачу.

2) Укажите, какая часть про­грам­мы является лишней.

3) Укажите, как нужно до­ра­бо­тать программу, чтобы не было слу­ча­ев ее не­кор­рект­ной работы. (Это можно сде­лать несколькими способами, по­это­му можно ука­зать любой спо­соб доработки ис­ход­ной программы).


7
Задание 24 № 3652

Требовалось на­пи­сать программу, ко­то­рая ре­ша­ет не­ра­вен­ство от­но­си­тель­но для лю­бо­го не­ну­ле­во­го числа и лю­бо­го не­от­ри­ца­тель­но­го числа и вве­ден­ных с клавиатуры. Все числа счи­та­ют­ся действительными. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му неправильно.

 

ПаскальБейсикСи

var a,b,x: real;

begin

readln(a,b,x);

if a = 0 then

if b > 0 then

write ('нет решений')

else

write('x > 0 или x <0')

else

write(-a,'< x <0');

end.

INPUT а, b, х

IF а = 0 THEN

IF b > 0 THEN

PRINT "нет решений"

ELSE

PRINT "x>0 или x<0"

ENDIF

ELSE

PRINT -a," ENDIF

END

void main(void)

{ float a,b,x;

scanf("%f%f%f", &a,&b,&x);

if (a==0)

if (b>0)

printf ("нет решений");

else

printf ("x>0 или x<0");

else

printf("%f}

 

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

1) Приведите при­мер таких чисел а, b, х, при ко­то­рых про­грам­ма не­вер­но ре­ша­ет по­став­лен­ную задачу.

2) Укажите, какая часть про­грам­мы яв­ля­ет­ся лишней.

3) Укажите, как нужно до­ра­бо­тать программу, чтобы не было слу­ча­ев ее не­кор­рект­ной работы. (Это можно сде­лать не­сколь­ки­ми способами, по­это­му можно ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной программы).


8
Задание 24 № 3637

Требовалось на­пи­сать программу, ко­то­рая ре­ша­ет не­ра­вен­ство «(ах) / (х + b) > 0» от­но­си­тель­но х для лю­бо­го не­ну­ле­во­го числа а и лю­бо­го не­от­ри­ца­тель­но­го числа b и , вве­ден­ных с клавиатуры. Все числа счи­та­ют­ся действительными. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му неправильно.

 

ПаскальБейсикСи
var a,b,x: real;

begin

readln(a,b,x);

if b = 0 then

write('x > 0 или x < 0')

else

if a > 0 then

write('x > 0 или x <',-b)

else

write(-b,'< x <0 ' ) ;

end.

INPUT а, b, х

IF b = 0 THEN

PRINT "х > 0 или х <0"

ELSE

IF а>0 THEN

PRINT "х >0 или х<",-b

ELSE

PRINT -b,"<х<0"

ENDIF

ENDIF

END

void main(void)

{ float a,b,x;

scanf ("%f%f%f", &a, &b, &x) ;

if (b==0)

printf ( "x>0 или x<0");

else

if (a > 0)

printf ("x>0 или x<%f",-b);

else

printf("%f< x <0",-b);

}

 

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

1) Приведите при­мер таких чисел a, b, x, при ко­то­рых про­грам­ма не­вер­но ре­ша­ет по­став­лен­ную задачу.

2) Укажите, какая часть про­грам­мы яв­ля­ет­ся лишней.

3) Укажите, как нужно до­ра­бо­тать программу, чтобы не было слу­ча­ев ее не­пра­виль­ной работы. (Это можно сде­лать не­сколь­ки­ми способами, по­это­му можно ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной программы).


9
Задание 24 № 3640

Требовалось на­пи­сать программу, ко­то­рая ре­ша­ет урав­не­ние «a |x| = b» от­но­си­тель­но х для любых чисел а и b, вве­ден­ных с клавиатуры. Все числа счи­та­ют­ся действительными. Про­грам­мист то­ро­пил­ся и на­пи­сал про­грам­му неправильно.

 

ПаскальБейсикСи
var a,b,x: real;

begin

readln(a,b,x);

if a = 0 then

if b = 0 then

write ('любое число')

else

write ('нет решений')

else

if b = 0 then

write('x = 0')

else

write('x =',b/a,' или x =',-b/a);

end.

INPUT a, b, x

IF a = 0 THEN

IF b = 0 THEN

PRINT "любое число"

ELSE

PRINT "нет решений"

ENDIF

ELSE

IF b = 0 THEN

PRINT "x =0"

ELSE

PRINT "x =",b/a, "или x =",-b/a

ENDIF

ENDIF

END

void main(void)

{float a,b,x;

scanf("%f%f%f", &a,&b,&x);

if (a==0)

if (b==0)

printf("любое число");

else

printf ("нет решений");

else

if (b==0)

printf ( "x - 0");

else

printf ("x=%f или x=%f",

b/a,-b/a);

}

 

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

1) Приведите при­мер таких чисел a, b, x, при ко­то­рых про­грам­ма не­вер­но ре­ша­ет по­став­лен­ную задачу.

2) Укажите, какая часть про­грам­мы яв­ля­ет­ся лишней.

3) Укажите, как нужно до­ра­бо­тать программу, чтобы не было слу­ча­ев ее не­пра­виль­ной работы. (Это можно сде­лать не­сколь­ки­ми способами, по­это­му можно ука­зать любой спо­соб до­ра­бот­ки ис­ход­ной программы).


10
Задание 24 № 10300

Даны целые по­ло­жи­тель­ные числа M и N. Не­об­хо­ди­мо опре­де­лить ко­ли­че­ство таких целых положительных чисел K, для ко­то­рых вы­пол­ня­ет­ся неравенство

 

Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал программу, но, к сожалению, его про­грам­ма неправильная. Ниже эта про­грам­ма для Ва­ше­го удоб­ства при­ве­де­на на пяти язы­ках программирования.

 

БейсикPython

DIM M, N, K, T AS INTEGER

INPUT M, N

K = 1

T = 1

WHILE K*K < N

  IF K*K >= M THEN T = T + 1

  K = K + 1

WEND

PRINT T

END

m = int(input())

n = int(input())

k = 1

t = 1

while k*k < n:

  if k*k >= m:

    t = t+1

  k = k + 1

print(t)

ПаскальАлгоритмический язык

var m, n, k, t: integer;

begin

  read(m, n);

  k := 1;

  t := 1;

  while k*k < n do begin

    if k*k >= m

      then t := t+1;

    k := k + 1;

  end;

  writeln(t)

end.

алг

нач

  цел m, n, k, t

  ввод m, n

  k := 1

  t := 1

  нц пока k*k < n

    если k*k >= m

      то t := t+1

    все

    k := k+1

  кц

  вывод t

кон

Си

#include <stdio.h>

int main(){

  int m, n, k, t;

  scanf("%d %d", &m, &n);

  k = 1;

  t = 1;

  while (k*k < n) {

    if (k*k >= m) t = t + 1;

    k = k + 1;

  }

  printf("%d", t);

  return 0;

}

 

Последовательно вы­пол­ни­те следующее.

1. Напишите, что вы­ве­дет эта про­грам­ма при вводе M = 10 и N = 40.

2. При­ве­ди­те при­мер таких чисел M и N, при вводе ко­то­рых про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько).

Для каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде.

Достаточно ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка программирования.

Обратите внимание: Вам нужно ис­пра­вить приведённую программу, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные строки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные строки: за исправления, внесённые в строки, не со­дер­жа­щие ошибок, баллы будут снижаться.

 

Замечание.


Аналоги к заданию № 10300: 10327 Все

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та по ин­фор­ма­ти­ке 28.01.2016 ИН10303

11
Задание 24 № 10398

Дано целое по­ло­жи­тель­ное число N. Не­об­хо­ди­мо опре­де­лить мак­си­маль­ное зна­че­ние сте­пе­ни числа 2, на ко­то­рое N де­лит­ся без остатка. Например, для N = 2016 нужно по­лу­чить ре­зуль­тат 32, а для N = 2017 — ре­зуль­тат 1. Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал программу, но, к сожалению, его про­грам­ма неправильная. Ниже эта про­грам­ма для Ва­ше­го удоб­ства при­ве­де­на на пяти язы­ках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 2

WHILE N MOD 2 = 0

  N = N\2

  K = K + 1

WEND

PRINT K

END

n = int(input())

k = 2

while n%2 == 0:

  n = n//2

  k = k + 1

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 2;

  while n mod 2 = 0 do begin

    n := n div 2;

    k := k + 1;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 2

  нц пока mod(n,2) = 0

    n := div(n,2)

    k := k+1

  кц

  вывод k

кон

Си

#include <stdio.h>

int main(){

  int n, k;

  scanf("%d", &n);

  k = 2;

  while (n%2 == 0) {

    n = n/2;

    k = k + 1;

  }

  printf("%d", k);

  return 0;

}

 

Последовательно вы­пол­ни­те следующее.

1. Напишите, что вы­ве­дет эта про­грам­ма при вводе N = 2016.

2. При­ве­ди­те два воз­мож­ных зна­че­ния N, при вводе ко­то­рых про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько). Для каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде. До­ста­точ­но ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка программирования.

Обратите внимание: Вам нужно ис­пра­вить приведённую программу, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные строки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные строки: за исправления, внесённые в строки, не со­дер­жа­щие ошибок, баллы будут снижаться.

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та по ин­фор­ма­ти­ке 18.03.2016 ИН10403

12
Задание 24 № 10425

Дано целое по­ло­жи­тель­ное число N. Не­об­хо­ди­мо опре­де­лить мак­си­маль­ное зна­че­ние сте­пе­ни числа 2, на ко­то­рое N де­лит­ся без остатка. Например, для N = 2016 нужно по­лу­чить ре­зуль­тат 32, а для N = 2017 — ре­зуль­тат 1. Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал программу, но, к сожалению, его про­грам­ма неправильная. Ниже эта про­грам­ма для Ва­ше­го удоб­ства при­ве­де­на на пяти язы­ках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE N MOD 2 = 0

  N = N\2

  K = K + 2

WEND

PRINT K

END

n = int(input())

k = 0

while n%2 == 0:

  n = n//2

  k = k + 2

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 0;

  while n mod 2 = 0 do begin

    n := n div 2;

    k := k + 2;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 0

  нц пока mod(n,2) = 0

    n := div(n,2)

    k := k+2

  кц

  вывод k

кон

Си

#include <stdio.h>

int main(){

  int n, k;

  scanf("%d", &n);

  k = 0;

  while (n%2 == 0) {

    n = n/2;

    k = k + 2;

  }

  printf("%d", k);

  return 0;

}

 

Последовательно вы­пол­ни­те следующее.

1. Напишите, что вы­ве­дет эта про­грам­ма при вводе N = 2016.

2. При­ве­ди­те два воз­мож­ных зна­че­ния N, при вводе ко­то­рых про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько). Для каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде. До­ста­точ­но ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка программирования.

Обратите внимание: Вам нужно ис­пра­вить приведённую программу, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные строки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные строки: за исправления, внесённые в строки, не со­дер­жа­щие ошибок, баллы будут снижаться.

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та по ин­фор­ма­ти­ке 18.03.2016 ИН10404

13
Задание 24 № 11253

Дано целое не­от­ри­ца­тель­ное число N. Не­об­хо­ди­мо вы­ве­сти два не­от­ри­ца­тель­ных целых числа, ко­то­рые при воз­ве­де­нии к квад­рат дадут результаты, наи­бо­лее близ­кие к N. Например, для N = 2016 нужно вы­ве­сти числа 44 и 45 (442 = 1936, 452 = 2025), а для N = 9 нужно вы­ве­сти числа 2 и 3. Для ре­ше­ния этой за­да­чи уче­ник на­пи­сал программу, но, к сожалению, его про­грам­ма — неправильная.

Ниже эта про­грам­ма для Ва­ше­го удоб­ства при­ве­де­на на пяти язы­ках программирования.

 

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE K*K <= N

  K = K + 1

WEND

PRINT (K-1)*(K-1), K*K

END

n = int(input())

k = 1

while k*k <= n:

    k = k + 1

print((k-1)*(k-1),k*k)

Алгоритмический языкПаскаль

алг

нач

  цел n, k

  ввод n

  k := 1

  нц пока k*k <= n

    k := k + 1

  кц

  вывод (k-1)*(k-1), " ", k*k

кон

var n, k: integer;

begin

  read(n);

  k := 1;

  while k*k <= n do

    k := k + 1;

  writeln((k-1)*(k-1)," ",k*k)

end.

Си

#include <stdio.h>>

    int main(){

    int n, k;

    scanf("%d", &n);

    k = 1;

    while (k*k <= n)

        k = k + 1;

    printf("%d %d", (k-1)*(k-1), k*k);

    return 0;

}

 

 

Последовательно вы­пол­ни­те следующее.

 

1. Напишите, что вы­ве­дет эта про­грам­ма при вводе N = 2016.

2. На­зо­ви­те зна­че­ние N, при вводе ко­то­ро­го про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько). Для каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде. Достаточно ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка программирования.

 

Обратите внимание: Вам нужно ис­пра­вить приведённую программу, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные строки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные строки: за исправления, внесённые в строки, не со­дер­жа­щие ошибок, баллы будут снижаться.

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та по ин­фор­ма­ти­ке 21.05.2016 ИН10503.

14
Задание 24 № 11280

Дано целое не­от­ри­ца­тель­ное число N. Необходимо вывести два ближайших к нему точных квадрата в порядке возрастания. Например, для N = 2016 нужно вывести числа 1936 и 2025 (1936 = 442, 2025 = 452), а для N = 9 нужно вывести числа 4 и 9.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа — неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 1

WHILE K*K <= N

  K = K + 1

WEND

PRINT K-1, K

END

n = int(input())

k = 1

while k*k <= n:

    k = k + 1

print(k-1,k)

Алгоритмический языкПаскаль

алг

нач

  цел n, k

  ввод n

  k := 1

  нц пока k*k <= n

    k := k + 1

  кц

  вывод k-1, " ", k

кон

var n, k: integer;

begin

  read(n);

  k := 1;

  while k*k <= n do

    k := k + 1;

  writeln(k-1, " ", k)

end.

Си

#include <stdio.h>>

    int main(){

    int n, k;

    scanf("%d", &n);

    k = 1;

    while (k*k <= n)

        k = k + 1;

    printf("%d %d", k-1, k);

    return 0;

}

 

 

Последовательно вы­пол­ни­те следующее.

 

1. Напишите, что вы­ве­дет эта про­грам­ма при вводе N = 2016.

2. На­зо­ви­те зна­че­ние N, при вводе ко­то­ро­го про­грам­ма вы­ве­дет вер­ный ответ. Ука­жи­те этот ответ.

3. Най­ди­те в про­грам­ме все ошиб­ки (их может быть одна или несколько). ля каж­дой ошиб­ки вы­пи­ши­те строку, в ко­то­рой она допущена, и при­ве­ди­те эту же стро­ку в ис­прав­лен­ном виде. Достаточно ука­зать ошиб­ки и спо­соб их ис­прав­ле­ния для од­но­го языка программирования.

 

Обратите внимание: Вам нужно ис­пра­вить приведённую программу, а не на­пи­сать свою. Вы мо­же­те толь­ко за­ме­нять оши­боч­ные строки, но не мо­же­те уда­лять стро­ки или до­бав­лять новые. За­ме­нять сле­ду­ет толь­ко оши­боч­ные строки: за исправления, внесённые в строки, не со­дер­жа­щие ошибок, баллы будут снижаться.

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та по ин­фор­ма­ти­ке 21.05.2016 ИН10504.

15
Задание 24 № 11320

Ученик написал программу, определяющую, какой степенью числа 4 является введенное. Например, для 16 это 2, так как 42 = 16. Если же такой степени нет, то необходимо вывести сообщение "Не существует". К сожалению, ученик написал программу неверно.

 

 

Паскаль

var n,k: longint;

begin

  readln(n);

  k := 0;

  while k mod 4 = 0 do

    begin

    n := n div 4;

    k := k + 1;

  end;

  if n <= 4 then

  writeln(k)

  else

    writeln('Не существует');

end.

 

 

 

Последовательно вы­пол­ни­те следующее.

 

1. Что выдаст программа при вводе числа 64?

2. При вводе какого числа программа выдаст верный ответ? Укажите этот ответ.

3. Исправьте программу. Запишите ошибочную строку, затем исправленный вариант. Помните, что нужно исправить имеющуюся программу, а не писать свою, хоть и с лучшим алгоритмом.

Источник: ЕГЭ 16.06.2016 по информатике. Основная волна. Вариант 41 (Часть С)

16
Задание 24 № 11324

Ученик написал программу, определяющую, какой степенью числа 5 является введенное. Например, для 25 это 2, так как 52 = 25. Если же такой степени нет, то необходимо вывести сообщение "Не существует". К сожалению, ученик написал программу неверно.

 

 

Паскаль

var n,k: longint;

begin

  readln(n);

  k := 0;

  while k mod 5 = 0 do

    begin

    n := n div 5;

    k := k + 1;

  end;

  if k <= 5 then

  writeln(k)

  else

    writeln('Не существует');

end.

 

 

 

Последовательно вы­пол­ни­те следующее.

 

1. Что выдаст программа при вводе числа 125?

2. При вводе какого числа программа выдаст верный ответ? Укажите этот ответ.

3. Исправьте программу. Запишите ошибочную строку, затем исправленный вариант. Помните, что нужно исправить имеющуюся программу, а не писать свою, хоть и с лучшим алгоритмом'

Источник: ЕГЭ 16.06.2016 по информатике. Основная волна. Вариант 52 (Часть С)

17
Задание 24 № 11329

Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 4. То есть требуется определить, существует ли такое целое число К, что 4K = N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.

 

var n, k: integer;

begin read(n);

k := 0;

while n mod 4 = 0 do begin

k := k + n div 4;

n := n div 4; end;

if n <= 4 then writeln(k)

else writeln('He существует')

end.

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 16.

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Источник: ЕГЭ 16.06.2016 по информатике. Основная волна. Вариант 77 (Часть С)

18
Задание 24 № 11333

Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 5. То есть требуется определить, существует ли такое целое число К, что 5K = N, и вывести это число либо сообщение, что такого числа не существует. Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной.

 

var n, k: integer;

begin read(n);

k := 0;

while n mod 5 = 0 do begin

k := k + n div 5;

n := n div 5; end;

if n > 0 then writeln(k)

else writeln('He существует')

end.

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 25.

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

3. Найдите в программе все ошибки (их может быть одна или несколько). Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Источник: ЕГЭ 16.06.2016 по информатике. Основная волна. Вариант 66 (Часть С)

19
Задание 24 № 11360

Дано целое положительное число N, не превосходящее 1000. Необходимо определить, является ли это число степенью числа 3. То есть требуется определить, существует ли такое целое число K, что 3K = N, и вывести это число либо сообщение, что такого числа не существует.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа оказалась неверной. Ниже эта написанная им программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE K MOD 3 = 0

    K = K + 1

    N = N \ 3

WEND

IF N > 0 THEN

    PRINT K

ELSE

    PRINT "Не существует"

END IF

END

n = int(input())

k = 0

while k%3 == 0:

    k = k + 1

    n = n // 3

if n > 0:

    print(k)

else:

    print("Не существует")

ПаскальАлгоритмический язык

var n, k: integer;

begin

    read(n);

    k := 0;

    while k mod 3 = 0 do begin

        k := k + 1;

        n := n div 3;

    end;

    if n > 0 then

        writeln(k)

    else

        writeln('Не существует')

end.

алг

нач

    цел n, k

    ввод n

    k := 0

    нц пока mod(k, 3)=0

        k := k + 1

        n := div(n,3)

    кц

    если n > 0

        то вывод k

        иначе вывод "Не существует"

    все

кон

Си

#include <stdio.h>

int main(){

    int n, k;

    scanf("%d",&n);

    k = 0;

    while (k%3 == 0) {

        k = k + 1;

        n = n / 3;

    }

    if (n > 0)

        printf("%d", k);

    else

        printf("Не существует");

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 9.

2. Приведите пример числа, при вводе которого приведённая программа напечатает то, что требуется.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2017 по информатике.

20
Задание 24 № 13370

На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран сумму цифр числа, НЕ кратных 3. Если в числе нет цифр, не кратных 3, требуется на экран вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

Напоминание: 0 делится на любое натуральное число.

 

БейсикPython

DIM N, DIGIT, SUM AS LONG

INPUT N

SUM = N MOD 10

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 3 > 0 THEN

        SUM = DIGIT

    END IF

    N = N \ 10

WEND

IF SUM > 0 THEN

    PRINT SUM

ELSE

    PRINT "NO"

END IF

N = int(input())

sum = N % 10

while N > 0:

    digit = N % 10

    if digit % 3 > 0:

        sum = digit

    N = N // 10

if sum > 0:

    print(sum)

else:

    print("NO")

ПаскальАлгоритмический язык

var N, digit, sum: longint;

begin

    readln(N);

    sum := N mod 10;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit mod 3 > 0 then

            sum := digit;

        N := N div 10;

    end;

    if sum > 0 then

        writeln(sum)

    else

        writeln('NO')

end.

алг

нач

    цел N, digit, sum

    ввод N

    sum := mod(N,10)

    нц пока N > 0

        digit := mod(N,10)

        если mod(digit, 3) > 0 то

            sum := digit

        все

        N := div(N,10)

    кц

    если sum > 0 то

        вывод sum

    иначе

        вывод "NO"

    все

кон

Си

#include

int main()

{

    int N, digit, sum;

    scanf("%d", &N);

    sum = N % 10;

    while (N > 0)

    {

        digit = N % 10;

        if (digit % 3 > 0)

            sum = digit;

        N = N / 10;

    }

    if (sum > 0)

        printf("%d",sum);

    else

        printf("NO");

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 645.

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т.е. приведите правильный вариант строки.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: ЕГЭ — 2017. До­сроч­ная волна по информатике

21
Задание 24 № 13420

Дано натуральное число A. Требуется вывести такое максимально возможное натуральное число K, при котором сумма 1 + (1 + 2) + (1 + 2 + 3) + … + (1 + 2 + … + K) не превышает A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,S,P,K AS INTEGER

INPUT A

S = 0

P = 0

K = 1

WHILE S <= A

    K = K + 1

    P = P + K

    S = S + P

WEND

PRINT K

END

a = int(input())

s = 0

p = 0

k = 1

while s <= a

     k = k + 1

     p = p + k

     s = s + p

print(k)

ПаскальАлгоритмический язык

var a, s, p, k: integer;

begin

    readln(a);

    s := 0;

    p := 0;

    k := 1;

    while s <= a do begin

      k := k+1;

      p := k+p;

      s := p+s;

    end;

    writeln(k);

end.

алг

нач

   цел a, s, p, k

   ввод a

   s := 0

   p := 0

   k := 1

   нц пока s <= a

     k := k+1

     p := p+k

     s := s+p

   кц

  вывод k

кон

Си

#include

int main()

{

   int a, s, p, k;

   scanf("%d", &a);

   s = 0;

   p = 0;

   k = 1;

   while (s <= a) {

       k = k+1;

       p = p+k;

       s = s+p;

   }

   printf("%d", k);

   return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 17.

2. Перечислите все значения A, при вводе которых программа выведет ответ 3.

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 18 января 2017 года Вариант ИН10303

22
Задание 24 № 13473

Дано натуральное число A. Требуется вывести такое максимально возможное натуральное число K, при котором сумма 1 + (1 + 2) + (1 + 2 + 3) + … + (1 + 2 + … + K) не превышает A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,S,P,K AS INTEGER

INPUT A

S = 0

P = 0

K = 1

WHILE S < A

    P = P + K

    S = S + P

    K = K + 1

WEND

PRINT K

END

a = int(input())

s = 0

p = 0

k = 1

while s < a

     p = p + k

     s = s + p

     k = k + 1

print(k)

ПаскальАлгоритмический язык

var a, s, p, k: integer;

begin

    readln(a);

    s := 0;

    p := 0;

    k := 1;

    while s < a do begin ;

      p := k+p;

      s := p+s;

      k := k+1;

    end;

    writeln(k);

end.

алг

нач

   цел a, s, p, k

   ввод a

   s := 0

   p := 0

   k := 1

   нц пока s < a

     p := p+k

     s := s+p

     k := k+1

   кц

  вывод k

кон

Си

#include

int main()

{

   int a, s, p, k;

   scanf("%d", &a);

   s = 0;

   p = 0;

   k = 1;

   while (s < a) {

       p = p+k;

       s = s+p;

       k = k+1;

   }

   printf("%d", k);

   return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 17.

2. Приведите пример значения A, при вводе которого программа выведет верный ответ. Укажите этот ответ.

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 18 января 2017 года Вариант ИН10304
Пояснение · ·

23
Задание 24 № 13500

Дано натуральное число A. Требуется вывести такое максимально возможное натуральное число K, при котором сумма 1 + (1 + 2) + (1 + 2 + 3) + … + (1 + 2 + … + K) не превышает A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,S,P,K AS INTEGER

INPUT A

S = 0

P = 0

K = 1

WHILE S < A

    P = P + K

    S = S + P

    K = K + 1

WEND

PRINT K

END

a = int(input())

s = 0

p = 0

k = 1

while s < a

     p = p + k

     s = s + p

     k = k + 1

print(k)

ПаскальАлгоритмический язык

var a, s, p, k: integer;

begin

    readln(a);

    s := 0;

    p := 0;

    k := 1;

    while s < a do begin ;

      p := k+p;

      s := p+s;

      k := k+1;

    end;

    writeln(k);

end.

алг

нач

   цел a, s, p, k

   ввод a

   s := 0

   p := 0

   k := 1

   нц пока s < a

     p := p+k

     s := s+p

     k := k+1

   кц

  вывод k

кон

Си

#include

int main()

{

   int a, s, p, k;

   scanf("%d", &a);

   s = 0;

   p = 0;

   k = 1;

   while (s < a) {

       p = p+k;

       s = s+p;

       k = k+1;

   }

   printf("%d", k);

   return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 17.

2. Приведите пример значения A, при вводе которого программа выведет верный ответ. Укажите этот ответ.

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

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 29 ноября 2016 года Вариант ИН10203

24
Задание 24 № 13527

Даны натуральные числа A и B. Требуется найти такое минимально возможное натуральное число K ≥ A, что сумма всех чисел от A до K больше B.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,B,S,K AS INTEGER

INPUT A,B

S = 0

K = A

WHILE S < B

    K = K + 1

    S = S + K

WEND

PRINT K

END

a = int(input())

b = int(input())

s = 0

k = a

while s < b:

    k = k + 1

    s = s + k

print(k)

ПаскальАлгоритмический язык

var a, b, s, k: integer;

begin

    read(a,b);

    s := 0;

    k := a;

    while s < b do begin

      k := k+1;

      s := s+k;

    end;

    writeln(k)

end.

алг

нач

    цел a, b, s, k

    ввод a, b

    s := 0

    k := a

    нц пока s < b

      k := k+1

      s := s+k

    кц

    вывод k

кон

Си

#include

int main(){

    int a, b, s, k;

    scanf("%d %d", &a, &b);

    s = 0;

    k = a;

    while (s < b) {

      k = k+1;

      s = s+k;

    }

    printf("%d", k);

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 15 и 26.

2. Приведите пример значений A и B, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 29 ноября 2016 года Вариант ИН10204

25
Задание 24 № 13554

Дано натуральное число N > 10, в десятичной записи которого нет нулей. Необходимо определить минимальное двузначное число, которое можно увидеть в десятичной записи N. Например, для N=1984 нужно получить результат 19, а для N = 271 828 — результат 18.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 100

WHILE N > 100

  IF N MOD 100 < K THEN

    K = N MOD 100

  END IF

  N = N \ 100

WEND

PRINT K

END

n = int(input())

k = 100

while n > 100:

    if n%100 < k:

        k = n%100

    n = n // 100

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 100;

  while n > 100 do begin

    if n mod 100 < k

      then k := n mod 100;

    n := n div 100;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 100

  нц пока n > 100

    если mod(n,100) < k

      то k:=mod(n,100)

    все

    n:=div(n,100)

  кц

  вывод k

кон

Си

#include

int main(){

    int n, k;

    scanf("%d", &n);

    k = 100;

    while (n > 100) {

      if (n%100 < k)

        k = n%100;

      n = n/100;

    }

    printf("%d", k);

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе N=6789.

2. Приведите два возможных значения N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 30 сентября 2016 года Вариант ИН10103

26
Задание 24 № 13581

Дано натуральное число N > 10, в десятичной записи которого нет нулей.

Необходимо определить максимальное двузначное число, которое можно увидеть в десятичной записи N. Например, для N = 1984 нужно получить результат 98, а для N = 271 828 — результат 82. Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM N, K AS INTEGER

INPUT N

K = 0

WHILE N > 100

  IF N MOD 100 > K THEN

    K = N MOD 100

  END IF

  N = N \ 100

WEND

PRINT K

END

n = int(input())

k = 0

while n > 100:

  if n%100 > k:

    k = n%100

  n = n // 100

print(k)

ПаскальАлгоритмический язык

var n, k: integer;

begin

  read(n);

  k := 0;

  while n > 100 do begin

    if n mod 100 > k

      then k := n mod 100;

    n := n div 100;

  end;

  writeln(k)

end.

алг

нач

  цел n, k

  ввод n

  k := 0

  нц пока n > 100

    если mod(n,100) > k

      то k:=mod(n,100)

    все

    n:=div(n,100)

  кц

  вывод k

кон

Си

#include

int main(){

  int n, k;

  scanf("%d", &n);

k = 0;

  while (n > 100) {

    if (n%100 > k)

      k = n%100;

    n = n/100;

  }

  printf("%d", k);

  return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе N = 9876.

2. Приведите два возможных значения N, при вводе которых программа выведет верный ответ. Укажите этот ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 30 сентября 2016 года Вариант ИН10104

27
Задание 24 № 13608

Дано натуральное число A > 0. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма 1*2 + 3*4 + … + K*(K+1) окажется больше A.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A,S,K AS INTEGER

INPUT A

S = 0

K = 1

WHILE S <= A

    S = S + K*(K+1)

    K = K + 1

WEND

PRINT K

END

a = int(input())

s = 0

k = 1

while s <= a:

    s = s + k*(k+1)

    k = k + 1

print(k)

ПаскальАлгоритмический язык

var a, s, k: integer;

begin

    read(a);

    s := 0;

    k := 1;

    while s <= a do begin

        s := s+k*(k+1);

        k := k+1;

    end;

    writeln(k)

end.

алг

нач

    цел a, s, k

    ввод a

    s := 0

    k := 1

    нц пока s <= a

        s := s+k*(k+1)

        k := k+1

    кц

    вывод k

кон

Си

#include <stdio.h>

int main() {

    int a, s, k;

    scanf("%d", &a);

    s = 0;

    k = 1;

    while (s <= a) {

        s = s+k*(k+1);

        k = k+1;

    }

    printf("%d", k);

    return 0;

}

 

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 15.

2. Укажите два наименьших значения A, при которых программа выведет верный ответ.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки. За исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 12 мая 2017 года Вариант ИН10503

28
Задание 24 № 13635

Дано натуральное число A>0. Требуется вывести такое минимально возможное нечётное натуральное число K, при котором сумма 1*2 + 3*4 + … + K*(K+1) окажется больше A. Для решения этой задачи ученик написал программу, но, к сожалению, его программа – неправильная. Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A,S,K AS INTEGER

INPUT A

S = 0

K = 1

WHILE S <= A

    K = K + 1

    S = S + K*(K+1)

WEND

PRINT K

END

a = int(input())

s = 0

k = 1

while s <= a:

    k = k + 1

    s = s + k*(k+1)

print(k)

ПаскальАлгоритмический язык

var a, s, k: integer;

begin

    read(a);

    s := 0;

    k := 1;

    while s <= a do begin

        k := k+1;

        s := s+k*(k+1);

    end;

    writeln(k)

end.

алг

нач

    цел a, s, k

    ввод a

    s := 0

    k := 1

    нц пока s <= a

        k := k+1

        s := s+k*(k+1)

    кц

    вывод k

кон

Си

#include <stdio.h>

int main() {

    int a, s, k;

    scanf("%d", &a);

    s = 0;

    k = 1;

    while (s <= a) {

        k = k+1;

        s = s+k*(k+1);

    }

    printf("%d", k);

    return 0;

}

 

 

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 15.

2. Укажите два наименьших значения A, при которых программа выведет верный ответ.

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

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Источник: Тренировочная работа по ИНФОРМАТИКЕ 11 класс 12 мая 2017 года Вариант ИН10504

29
Задание 24 № 13751

На обработку поступает натуральное число, не превышающее 109. Нужно написать программу, которая выводит на экран максимальную цифру числа, кратную 5. Если в числе нет цифр, кратных 5, требуется на экран вывести «NO». Программист написал программу неправильно. Ниже эта программа для Вашего удобства приведена на пяти языках программирования. Напоминание: 0 делится на любое натуральное число.

 

БейсикPython

DIM N, DIGIT, MAXDIGIT AS LONG

INPUT N

MAXDIGIT = N MOD 10

WHILE N > 0

    DIGIT = N MOD 10

    IF DIGIT MOD 5 = 0 THEN

        IF DIGIT > MAXDIGIT THEN

            MAXDIGIT = DIGIT

        END IF

    END IF

    N = N \ 10

WEND

IF MAXDIGIT = 0 THEN

    PRINT "NO"

ELSE

    PRINT MAXDIGIT

END IF

N = int(input())

maxDigit = N % 10

while N > 0:

    digit = N % 10

    if digit % 5 == 0:

        if digit > maxDigit:

            maxDigit = digit

    N = N // 10

if maxDigit == 0:

    print("NO")

else:

    print(maxDigit)

ПаскальАлгоритмический язык

var N,digit,maxDigit: longint;

begin

    readln(N);

    maxDigit := N mod 10;

    while N > 0 do

    begin

        digit := N mod 10;

        if digit mod 5 = 0 then

            if digit > maxDigit then

                maxDigit := digit;

            N := N div 10;

    end;

    if maxDigit = 0 then

        writeln('NO')

    else

        writeln(maxDigit)

end.

алг

нач

    цел N, digit, maxDigit

    ввод N

    maxDigit := mod(N,10)

    нц пока N > 0

        digit := mod(N,10)

        если mod(digit, 5) = 0 то

            если digit > maxDigit то

                maxDigit := digit

            все

        все

        N := div(N,10)

    кц

    если maxDigit = 0 то

        вывод "NO"

    иначе

        вывод maxDigit

    все

кон

Си++

#include <iostream>

using namespace std;

 

int main() {

        long N, digit, maxDigit;

        cin >> N;

        maxDigit = N % 10;

        while (N > 0) {

            digit = N % 10;

            if (digit % 5 == 0)

                if (digit > maxDigit)

                    maxDigit = digit;

            N = N / 10;

        }

        if (maxDigit == 0)

            cout << "NO" << endl;

        else

            cout << maxDigit << endl;

        return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе числа 132.

2. Приведите пример такого трёхзначного числа, при вводе которого программа выдаёт верный ответ.

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

1) выпишите строку, в которой сделана ошибка;

2) укажите, как исправить ошибку, т. е. приведите правильный вариант строки.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание, что требуется найти ошибки в имеющейся программе, а не написать свою, возможно, использующую другой алгоритм решения. Исправление ошибки должно затрагивать только строку, в которой находится ошибка.

Источник: Де­мон­стра­ци­он­ная вер­сия ЕГЭ—2018 по информатике.

30
Задание 24 № 14239

Даны целые числа A и B, 0 ≤ B ≤ A. Последовательно вычисляются значения A – 1, A – 1 – 2, A – 1 – 2 – 3 и т. д. Необходимо вывести наибольшее из этих значений, которое меньше B.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

БейсикPython

DIM A,B,S,K AS INTEGER

INPUT A, B

IF NOT (0<=B AND B<=A) THEN

    PRINT "Неверные данные"

ELSE

    S = A

    K = 0

    WHILE S > B

         S = S - K

        K = K + 1

     WEND

    PRINT K

END IF

END

a = int(input())

b = int(input())

if not 0<=b<=a:

    print("Неверные данные")

else:

    s = a

    k = 0

    while s > b:

        s = s-k

        k = k+1

    print(k)

ПаскальАлгоритмический язык

var a, b, s, k: integer;

begin

    read(a,b);

    if not ((0<=b) and (b<=a)) then

        writeln('Неверные данные')

    else begin

        s := a;

        k := 0;

        while s > b do begin

            s := s-k;

            k := k+1;

        end;

        writeln(k)

    end

end.

алг

нач

    цел a, b, s, k

    ввод a, b

    если не 0<=b<=a

        то

        вывод "Неверные данные"

        иначе

        s := a

        k := 0

        нц пока s > b

            s := s-k

            k := k+1

        кц

        вывод k

    все

кон

Си++

#include

using namespace std;

int main(){

    int a, b, s, k;

    cin >> a >> b;

    if (!(0<=b && b<=a))

        cout << "Неверные данные";

    else {

        s = a;

        k = 0;

        while (s > b) {

            s = s-k;

            k = k+1;

        }

        cout << k;

    }

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 6 и 2.

2. Приведите пример таких значений A и B, при вводе которых программа выведет правильный числовой ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

 

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та 14.09.2017 ИН10103

31
Задание 24 № 14283

Даны целые числа A и B, 0 ≤ B ≤ A. Последовательно вычисляются значения A – 1, A – 1 – 2, A – 1 – 2 – 3 и т.д. Необходимо вывести наибольшее из этих значений, которое меньше B.

Для решения этой задачи ученик написал программу, но, к сожалению, его программа неправильная.

Ниже эта программа для Вашего удобства приведена на пяти языках программирования.

 

 

БейсикPython

DIM A,B,S,K AS INTEGER

INPUT A, B

IF NOT (0<=B AND B<=A) THEN

    PRINT "Неверные данные"

ELSE

    S = 0

    K = 0

    WHILE S > B

         K = K + 1

        S = S - K

     WEND

    PRINT S

END IF

END

a = int(input())

b = int(input())

if not 0<=b<=a:

    print("Неверные данные")

else:

    s = 0

    k = 0

    while s > b:

        k = k+1

        s = s-k

    print(s)

ПаскальАлгоритмический язык

var a, b, s, k: integer;

begin

    read(a,b);

    if not ((0<=b) and (b<=a)) then

        writeln('Неверные данные')

    else begin

        s := 0;

        k := 0;

        while s > b do begin

            k := k+1;

            s := s-k;

        end;

        writeln(s)

    end

end.

алг

нач

    цел a, b, s, k

    ввод a, b

    если не 0<=b<=a

        то

        вывод "Неверные данные"

        иначе

        s := 0

        k := 0

        нц пока s > b

            k := k+1

            s := s-k

        кц

        вывод s

    все

кон

Си++

#include

using namespace std;

int main(){

    int a, b, s, k;

    cin >> a >> b;

    if (!(0<=b && b<=a))

        cout << "Неверные данные";

    else {

        s = 0;

        k = 0;

        while (s > b) {

            k = k+1;

            s = s-k;

        }

        cout << s;

    }

    return 0;

}

 

Последовательно выполните следующее.

1. Напишите, что выведет эта программа при вводе чисел 12345 и 1234.

2. Приведите пример таких значений A и B, при вводе которых программа выведет правильный числовой ответ.

3. Найдите в программе все ошибки (их может быть одна или несколько).

Для каждой ошибки выпишите строку, в которой она допущена, и приведите эту же строку в исправленном виде.

 

Достаточно указать ошибки и способ их исправления для одного языка программирования.

Обратите внимание: Вам нужно исправить приведённую программу, а не написать свою. Вы можете только заменять ошибочные строки, но не можете удалять строки или добавлять новые. Заменять следует только ошибочные строки: за исправления, внесённые в строки, не содержащие ошибок, баллы будут снижаться.

Источник: СтатГрад: Тре­ни­ро­воч­ная ра­бо­та 14.09.2017 ИН10104

Пройти тестирование по этим заданиям



     О проекте · Редакция

© Гущин Д. Д., 2011—2017


СПб ГУТ! С! Ф! У!