SlideShare a Scribd company logo
ЕГЭ 2012
Информатика и ИКТ
Консультация №3
Пример .
Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и
выполнив предложенную программу, РОБОТ уцелеет и остановится в
закрашенной клетке (клетка F6)?
НАЧАЛО
ПОКА<справа свободно ИЛИ снизу свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
ПОКА <справа свободно>
вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
НАЧАЛО
ПОКА<справа свободно ИЛИ снизу
свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
ПОКА <справа свободно>
вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
НАЧАЛО
ПОКА<справа свободно ИЛИ снизу
свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
ПОКА <справа свободно>
вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
НАЧАЛО
ПОКА<справа свободно ИЛИ снизу
свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
ПОКА <справа свободно>
вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
НАЧАЛО
ПОКА<справа свободно ИЛИ снизу
свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
ПОКА <справа свободно>
вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
НАЧАЛО
ПОКА<справа свободно ИЛИ снизу
свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
ПОКА <справа свободно>
вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
НАЧАЛО
ПОКА<справа свободно ИЛИ снизу
свободно>
ПОКА <снизу свободно>
вниз
КОНЕЦ ПОКА
ПОКА <справа свободно>
вправо
КОНЕЦ ПОКА
КОНЕЦ ПОКА
КОНЕЦ
Ответ 26
Пример 1. Значения двух массивов a[1..100] и b[1..100] задаются с
помощью следующего фрагмента программы. Какой элемент массива
B будет наименьшим (указать его номер)?
Бейсик
FOR t=1 TO 100
A(t)=(t-80)*(t-80)
NEXT t
FOR t=1 TO 100
B(101-t)=A(t)
NEXT t
Паскаль
for t:=1 to 100 do
a[t]:=(t-80)*(t-80);
for t:=1 to 100 do b[101-
t]:=a[t]
Си
for(t=1;t<=100;t++)
a[t] = (t-80)*(t-80);
for(t=1;t<=100;t++)
b[101-t] =a[t]
Бейсик
FOR t=1 TO 100
A(t)=(t-10)
NEXT t
Паскаль
for t:=1 to 100 do
a[t]:=(t-10);
Си
for(t=1;t<=100;t++)
a[t] = (t-10);
A(1) A(2) A(3) A(9) A(10) A(11) A(100)
-9 -8 -7 -1 0 1 90
A(1) A(2) A(3) A(9) A(10) A(11) A(100)
-9 -8 -7 -1 0 1 90
Бейсик
FOR t=1 TO 100
A(t)=(t-10)
NEXT t
FOR t=1 TO 100
B(t)=A(t)*t
NEXT t
Паскаль
for t:=1 to 100 do
a[t]:=(t-10);
for t:=1 to 100 do
b[t]:=a[t]*t;
Си
for(t=1;t<=100;t++)
a[t] = (t-10);
for(t=1;t<=100;t++)
b[t] =a[t] *t;
B(1) B(2) B(3) B(4) B(5) B(6) B(7) B(8) B(10) B(100)
-9 -16 -21 -24 -25 -24 -21 -16 0 9000
Пример 2.
Найти сумму элементов двумерного массива при n=30.
Количество элементов = 30•30
Диагональ = 30 элементов
Количество элементов ниже диагонали = (30•30-30)/2
Сумма = (30•30-30)/2 = 435
Ответ: 435
Пример
В программе описан одномерный целочисленный массив с индексами от 0 до
n. Ниже представлен записанный на разных языках программирования
фрагмент одной и той же программы, обрабатывающей данный массив:
s = 0
z = A(n)
FOR i = 0 TO n-1
IF A(i) < z THEN s = s +
A(i)
NEXT i
s:=0;
z:=A[n];
for i:=0 to n-1 do
if A[i]<z then s:=s + A[i];
s = 0;
z = A[n];
for (i = 0; i < n; i++)
if (A[i] < z) s=s+ A[i];
Чему будет равно значение переменной s после выполнения данной программы?
Ответ должен быть верным при любых значениях элементов массива.
1. Минимальному элементу в массиве A
2. Количеству элементов массива A, меньших последнего элемента массива
3. Сумме всех элементов массива А, меньших последнего элемента массива
4. Индексу первого элемента массива А, который меньше A[n]
Пример
В программе описан одномерный целочисленный массив с индексами от 0 до
n. Ниже представлен записанный на разных языках программирования
фрагмент одной и той же программы, обрабатывающей данный массив:
s = 0
z = A(n)
FOR i = 0 TO n-1
IF A(i) < z THEN s = s +
A(i)
NEXT i
s:=0;
z:=A[n];
for i:=0 to n-1 do
if A[i]<z then s:=s + A[i];
s = 0;
z = A[n];
for (i = 0; i < n; i++)
if (A[i] < z) s=s+ A[i];
Чему будет равно значение переменной s после выполнения данной программы?
Ответ должен быть верным при любых значениях элементов массива.
1. Минимальному элементу в массиве A
2. Количеству элементов массива A, меньших последнего элемента массива
3. Сумме всех элементов массива А, меньших последнего элемента массива
4. Индексу первого элемента массива А, который меньше A[n]
Ответе: 3
Пример . Определите, что будет напечатано в результате выполнения
программы
Бейсик Паскаль Си
DIM N, S AS INTEGER
N = 0
S = 512
WHILE S >= 0
S = S - 20
N = N + 1
WEND
PRINTN
var n, s: integer;
begin
n := 0;
s := 512;
while s >= 0 do
begin
s := s - 20;
n := n + 1
end;
write(n)
end.
#include<stdio.h>
void main()
{ int n, s;
n = 0;
s = 512;
while (s >= 0)
{ s = s - 20;
n = n + 1; }
printf("%d", n);
}
Бейсик Паскаль Си
DIM N, S AS INTEGER
N = 0
S = 512
WHILE S >= 0
S = S - 20
N = N + 1
WEND
PRINTN
var n, s: integer;
begin n := 0;
s := 512;
while s >= 0 do
begin s := s - 20;
n := n + 1
end;
write(n)
end.
#include<stdio.h>
void main()
{ int n, s;
n = 0;
s = 512;
while (s >= 0)
{ s = s - 20;
n = n + 1; }
printf("%d", n);}
s n
512
512-20 >=0
512-20-20 = 512-20*2 >=0
0
1
2
Бейсик Паскаль Си
DIM N, S AS INTEGER
N = 0
S = 512
WHILE S >= 0
S = S - 20
N = N + 1
WEND
PRINTN
var n, s: integer;
begin n := 0;
s := 512;
while s >= 0 do
begin s := s - 20;
n := n + 1
end;
write(n)
end.
#include<stdio.h>
void main()
{ int n, s;
n = 0;
s = 512;
while (s >= 0)
{ s = s - 20;
n = n + 1; }
printf("%d", n);}
s n
512
512-20 >=0
512-20-20=512-20*2 >=0
512-20*2-20 = 512-20*3 >=0
0
1
2
3
Бейсик Паскаль Си
DIM N, S AS INTEGER
N = 0
S = 512
WHILE S >= 0
S = S - 20
N = N + 1
WEND
PRINTN
var n, s: integer;
begin n := 0;
s := 512;
while s >= 0 do
begin s := s - 20;
n := n + 1
end;
write(n)
end.
#include<stdio.h>
void main()
{ int n, s;
n = 0;
s = 512;
while (s >= 0)
{ s = s - 20;
n = n + 1; }
printf("%d", n);}
s n
512
512-20 >=0
512-20-20=512-20*2 >=0
512-20*2-20 = 512-20*3 >=0
• • •
512-20*25 = 12 >=0
0
1
2
3
• • •
25
Бейсик Паскаль Си
DIM N, S AS INTEGER
N = 0
S = 512
WHILE S >= 0
S = S - 20
N = N + 1
WEND
PRINTN
var n, s: integer;
begin n := 0;
s := 512;
while s >= 0 do
begin s := s - 20;
n := n + 1
end;
write(n)
end.
#include<stdio.h>
void main()
{ int n, s;
n = 0;
s = 512;
while (s >= 0)
{ s = s - 20;
n = n + 1; }
printf("%d", n);}
s n
512
512-20 >=0
512-20-20=512-20*2 >=0
512-20*2-20 = 512-20*3 >=0
• • •
512-20*25 = 12 >=0
12 – 20 <0
0
1
2
3
• • •
25
26
Ответ: 26
Пример . Определите, что будет напечатано в результате выполнения программы,
записанной ниже на разных языках программирования:
Бейсик Паскаль Си
DIM N, S AS INTEGER
N = 1
S = 0
WHILE N <= 101
S = S + 7
N = N + 1
WEND
PRINTS
var n, s: integer;
begin
n := 1;
s := 0;
while n <= 101 do
begin
s := s + 7;
n := n + 1
end;
write(s)
end.
#include<stdio.h>
void main()
{ int n, s;
n = 1;
s = 0;
while (n <= 101)
{ s = s + 7;
n = n + 1;
}
printf("%d", s);}
n s
1
2
3
4
0
7
7 + 7
7 + 7 + 7
Пример . Определите, что будет напечатано в результате выполнения программы,
записанной ниже на разных языках программирования:
Бейсик Паскаль Си
DIM N, S AS INTEGER
N = 1
S = 0
WHILE N <= 101
S = S + 7
N = N + 1
WEND
PRINTS
var n, s: integer;
Begin n := 1;
s := 0;
while n <= 101 do
begin s := s + 7;
n := n + 1
end;
write(s)
end.
#include<stdio.h>
void main()
{ int n, s;
n = 1;
s = 0;
while (n <= 101)
{ s = s + 7;
n = n + 1; }
printf("%d", s);}
n s
1
2
3
4
t
0
7
7 + 7 = 7 *2
7 + 7 + 7 = 7*3
7 + 7 +…+ 7 = 7* (t-1)
Бейсик Паскаль Си
DIM N, S AS INTEGER
N = 1
S = 0
WHILE N <= 101
S = S + 7
N = N + 1
WEND
PRINTS
var n, s: integer;
Begin n := 1;
s := 0;
while n <= 101 do
begin s := s + 7;
n := n + 1
end;
write(s)
end.
#include<stdio.h>
void main()
{ int n, s;
n = 1;
s = 0;
while (n <= 101)
{ s = s + 7;
n = n + 1; }
printf("%d", s);}
n s
1
2
3
4
t
102
0
7
7 + 7 = 7 *2
7 + 7 + 7 = 7*3
7 + 7 +…+ 7 = 7* (t-1)
7 * 101 = 707
Ответ: 707
Пример . Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее
из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 8.
Бейсик Паскаль СИ
DIM X, A, B AS INTEGER
INPUT X
A=0: B=0
WHILE X > 0
A = A+1
B = B +(X MOD 10)
X = X  10
WEND
PRINT A
PRINT B
var x, a, b: integer;
begin
readln(x); a:=0; b:=0;
while x>0 do
begin a:=a+1;
b:=b+(x mod 10);
x:=x div 10;
end;
writeln(a); write(b);
end.
#include<stdio.h>
void main()
{ int x, a, b;
scanf("%d", &x);
a=0; b=0;
while (x>0)
{ a=a+1;
b=b + (x%10);
x= x/10; }
printf("%dn%d", a, b);}
x = 5423 остаток от деления x на 10 = 3 x div 10 = 542
x = 542 остаток от деления x на 10 = 2 x div 10 = 54
x = 54 остаток от деления x на 10 = 4 x div 10 = 5
x = 5 остаток от деления x на 10 = 5 x div 10 = 0
x = 0
Пример . Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее
из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 8.
Бейсик Паскаль СИ
DIM X, A, B AS INTEGER
INPUT X
A=0: B=0
WHILE X > 0
A = A+1
B = B +(X MOD 10)
X = X  10
WEND
PRINT A
PRINT B
var x, a, b: integer;
begin
readln(x); a:=0; b:=0;
while x>0 do
begin a:=a+1;
b:=b+(x mod 10);
x:=x div 10;
end;
writeln(a); write(b);
end.
#include<stdio.h>
void main()
{ int x, a, b;
scanf("%d", &x);
a=0; b=0;
while (x>0)
{ a=a+1;
b=b + (x%10);
x= x/10; }
printf("%dn%d", a, b);}
a =2, следовательно операторы в цикле выполнились 2 раза
Выход из цикла при x=0, 10 <= x <= 99
x mod 10 (x%10) – цифра числа x, b – сумма цифр числа x
b = 8, следовательно наибольшее x = 80
Ответ: 80
Бейсик Паскаль Си
DIM X, A, B AS INTEGER
INPUT X
A=0: B=1
WHILE X > 0
A = A+1
B = B*(X MOD 10)
X = X  10
WEND
PRINT A
PRINT B
var x, a, b: integer;
begin
readln(x);
a:=0; b:=1;
while x>0 do
begin
a:=a+1;
b:=b*(x mod 10);
x:= x div 10;
end;
writeln(a); write(b);
end.
#include<stdio.h>
void main()
{
int x, a, b;
scanf("%d", &x);
a=0; b=1;
while (x>0){
a=a+1;
b=b*(x%10);
x= x/10; }
printf("%dn%d", a, b);}
Пример . Укажите наибольшее из таких чисел x, при вводе
которых алгоритм печатает сначала 3, а потом 5.
Бейсик Паскаль Си
DIM X, A, B AS INTEGER
INPUT X
A=0: B=1
WHILE X > 0
A = A+1
B = B*(X MOD 10)
X = X  10
WEND
PRINT A
PRINT B
var x, a, b: integer;
begin
readln(x);
a:=0; b:=1;
while x>0 do
begin
a:=a+1;
b:=b*(x mod 10);
x:= x div 10;
end;
writeln(a); write(b);
end.
#include<stdio.h>
void main()
{
int x, a, b;
scanf("%d", &x);
a=0; b=1;
while (x>0){
a=a+1;
b=b*(x%10);
x= x/10; }
printf("%dn%d", a, b);}
Пример . Укажите наибольшее из таких чисел x, при вводе
которых алгоритм печатает сначала 3, а потом 5.
a =3, следовательно операторы в цикле выполнились 3 раза
100 <= x <= 999
b – произведение цифр числа x
b = 5, следовательно наибольшее x = 511
Ответ: 511
Пример . Определите, какое число будет напечатано в результате выполнения следующего
алгоритма (для Вашего удобства алгоритм представлен на четырех языках):
Бейсик Паскаль Си
DIM A, B, T, M, R AS
INTEGER
A = -20: B = 20
M = A: R = F(A)
FOR T = A TO B
IF F(T) < R THEN
M = T
R = F(T)
END IF
NEXT T
PRINT M
FUNCTION F(x)
F = (x-19)*(x+17);
END FUNCTION
var a,b,t,M,R :integer;
Function F(x: integer):integer;
begin
F := (x-19)*(x+17);
end;
BEGIN
a := -20; b := 20;
M := a; R := F(a);
for t := a to b do begin
if (F(t)<R) then begin
M := t; R := F(t);
end;
end;
write(M);
END.
#include<stdio.h>
int F(int x)
{
return (x-19)*(x+17);
}
void main()
{ int a, b, t, M, R;
a = -20; b = 20;
M = a; R = F(a);
for (t=a; t<=b; t++){
if (F(t)<R) {
M = t; R = F(t); }
}
printf("%d", M);
}
Пример . Определите, какое число будет напечатано в результате выполнения следующего
алгоритма (для Вашего удобства алгоритм представлен на четырех языках):
Бейсик Паскаль Си
DIM A, B, T, M, R AS
INTEGER
A = -20: B = 20
M = A: R = F(A)
FOR T = A TO B
IF F(T) < R THEN
M = T
R = F(T)
END IF
NEXT T
PRINT M
FUNCTION F(x)
F = (x-19)*(x+17);
END FUNCTION
var a,b,t,M,R :integer;
Function F(x: integer):integer;
begin
F := (x-19)*(x+17);
end;
BEGIN a := -20; b := 20;
M := a; R := F(a);
for t := a to b do
if (F(t)<R) then begin
M := t; R := F(t);
end;
write(M);
END.
#include<stdio.h>
int F(int x)
{ return (x-19)*(x+17);}
void main()
{ int a, b, t, M, R;
a = -20; b = 20;
M = a; R = F(a);
for (t=a; t<=b; t++)
if (F(t)<R)
{M = t; R = F(t); }
printf("%d", M);
}
Пример . Определите, какое число будет напечатано в результате выполнения следующего
алгоритма (для Вашего удобства алгоритм представлен на четырех языках):
Бейсик Паскаль Си
DIM A, B, T, M, R AS
INTEGER
A = -20: B = 20
M = A: R = F(A)
FOR T = A TO B
IF F(T) < R THEN
M = T
R = F(T)
END IF
NEXT T
PRINT M
FUNCTION F(x)
F = (x-19)*(x+17);
END FUNCTION
var a,b,t,M,R :integer;
Function F(x: integer):integer;
begin
F := (x-19)*(x+17);
end;
BEGIN a := -20; b := 20;
M := a; R := F(a);
for t := a to b do
if (F(t)<R) then begin
M := t; R := F(t);
end;
write(M);
END.
#include<stdio.h>
int F(int x)
{ return (x-19)*(x+17);}
void main()
{ int a, b, t, M, R;
a = -20; b = 20;
M = a; R = F(a);
for (t=a; t<=b; t++)
if (F(t)<R)
{M = t; R = F(t); }
printf("%d", M);
}
F(x) = x2
- 2x - 323 x = -b/2a = 1
R – наименьшее значение функции
M – значение x, при котором достигается минимальное значение
Ответ: 1
Задание С1
• Задача относится к повышенному
уровню сложности
• Программа содержит некоторое
количество условий (циклов и массивов
нет)
• Необходимо найти ошибку в программе
(смысловую, а не синтаксическую)
• Изменить программу для устранения
случаев неправильной работы
Пример . Требовалось написать программу, которая вводит с клавиатуры
координаты точки на плоскости (x, y – действительные числа) и определяет
принадлежность точки заштрихованной области, включая ее границы.
Программист торопился и написал программу неправильно.
Бейсик Паскаль Си
INPUT x, y
IF y>=x THEN
IF y>=0 THEN
IF y<=2-x*x THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
END IF
END IF
END IF
END
var x,y: real;
begin
readln(x,y);
if y>=x then
if y>=0 then
if y<=2-x*x then
write('принадлежит')
else
write('не принадлежит')
end.
void main(void){
float x,y;
scanf("%f %f",&x,&y);
if (y>=x)
if (y>=0)
if (y<=2-x*x)
printf("принадлежит");
else
printf("не принадлежит");
}
Последовательно выполните следующее.
1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих
различным областям (A, B, C, D, E, F и G). Точки, лежащие на границах областей, отдельно не рассматривать.
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если
условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих
данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не
выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты,
напишите «не изв». В последнем столбце укажите "да" или "нет".
2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать
несколькими способами, достаточно указать любой способ доработки исходной программы.)
Область y>=x? y>=0? y<=2-x*x? вывод верно?
A
B
C
D
E
F
G
Бейсик Паскаль Си
IF y>=x THEN
IF y>=0 THEN
IF y<=2-x*x THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
END IF
END IF
END IF
END
if y>=x then
if y>=0 then
if y<=2-x*x then
write('принадлежит')
else
write('не принадлежит')
end.
if (y>=x)
if (y>=0)
if (y<=2-x*x)
printf("принадлежит");
else
printf("не принадлежит");
}
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“
(прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному
для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите,
что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк).
Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не
изв». В последнем столбце укажите "да" или "нет".
Область y>=x? y>=0? y<=2-x*x? вывод верно?
A Да Да Нет Не принадлежит да
B
C
D
E
F
G
if y>=x then
if y>=0 then
if y<=2-x*x then
write('принадлежит')
else
write('не принадлежит')
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“
(прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному
для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите,
что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк).
Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не
изв». В последнем столбце укажите "да" или "нет".
Область y>=x? y>=0? y<=2-x*x? вывод верно?
A Да Да Нет Не принадлежит да
B Да Нет - - нет
C
D
E
F
G
if y>=x then
if y>=0 then
if y<=2-x*x then
write('принадлежит')
else
write('не принадлежит')
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“
(прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному
для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите,
что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк).
Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не
изв». В последнем столбце укажите "да" или "нет".
Область y>=x? y>=0? y<=2-x*x? вывод верно?
A Да Да Нет Не принадлежит да
B Да Нет - - нет
C Нет - - - нет
D Нет - - - нет
E
F
G
if y>=x then
if y>=0 then
if y<=2-x*x then
write('принадлежит')
else
write('не принадлежит')
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“
(прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному
для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите,
что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк).
Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не
изв». В последнем столбце укажите "да" или "нет".
Область y>=x? y>=0? y<=2-x*x? вывод верно?
A Да Да Нет Не принадлежит да
B Да Нет - - нет
C Нет - - - нет
D Нет - - - нет
E Да Да Да Принадлежит да
F
G
if y>=x then
if y>=0 then
if y<=2-x*x then
write('принадлежит')
else
write('не принадлежит')
В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“
(прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному
для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите,
что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк).
Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не
изв». В последнем столбце укажите "да" или "нет".
Область y>=x? y>=0? y<=2-x*x? вывод верно?
A Да Да Нет Не принадлежит да
B Да Нет - - нет
C Нет - - - нет
D Нет - - - нет
E Да Да Да Принадлежит да
F Да Нет - - нет
G Нет - - - нет
if y>=x then
if y>=0 then
if y<=2-x*x then
write('принадлежит')
else
write('не принадлежит')
(y<=2-x*x) и (y>=0)
(y<=2-x*x) и y>=x
(y<=2-x*x) и (y>=0)
(y<=2-x*x) и (y>=x)
(y<=2-x*x) и (y>=0) или (y<=2-x*x) и (y>=x)
(y<=2-x*x) и ((y>=0) или (y>=x))
Бейсик Паскаль Си
INPUT x, y
IF ((y>=x)or(y>=0))and(y<=2-x*x)
THEN
PRINT "принадлежит"
ELSE
PRINT "не принадлежит"
END IF
END
var x,y: real;
begin
readln(x,y);
if ((y>=x)or(y>=0))and(y<=2-x*x)
then
write('принадлежит')
else
write('не принадлежит')
end.
void main(void){
float x,y;
scanf("%f %f",&x,&y);
if (((y>=x) II(y>=0)) && (y<=2-x*x))
printf("принадлежит");
else
printf("не принадлежит");
}
Задание С2
• Написать короткую (≈15 строк) простую
программу (например, обработка
массива)
• Программа линейной обработки
входной последовательности
Пример . (С2) Дан целочисленный массив из 30
элементов. Элементы массива могут принимать
значения от 0 до 1000. Опишите на русском языке
или на одном из языков программирования алгоритм,
который позволяет подсчитать и вывести среднее
арифметическое элементов массива, имеющих
нечетное значение. Гарантируется, что в исходном
массиве хотя бы один элемент имеет нечетное
значение.
Исходные данные объявлены так, как показано ниже.
Запрещается использовать переменные, не
описанные ниже, но разрешается не использовать
часть из них.
Паскаль
const
N=30;
var
a: array [1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);
Бейсик
N=30
DIM A(N) AS INTEGER
DIM I, X, Y AS INTEGER
DIM S AS SINGLE
FOR I = 1 TO N
INPUT A(I)
NEXT I
Си
#include <stdio.h>
#define N 30
void main(void)
{int a[N];
int i, x, y;
float s;
for (i=0; i<N; i++)
scanf("%d", &a[i]);
Паскаль
const
N=30;
var
a: array [1..N] of integer;
i, x, y: integer;
s: real;
begin
for i:=1 to N do readln(a[i]);
x:=0;
y:=0;
for i:=1 to N do
if (a[i] mod 2<>0)
then
begin
x:=x+a[i];
y:=y+1;
end;
s:=x/y;
writeln(s);
end.
Бейсик
N=30
DIM A(N) AS INTEGER
DIM I, X, Y AS INTEGER
DIM S AS SINGLE
FOR I = 1 TO N
INPUT A(I)
NEXT I
X = 0
Y = 0
FOR I = 1 TO N
IF A(I) MOD 2 <> 0 THEN
X = X + A(I)
Y = Y + 1
ENDIF
NEXT I
S = X / Y
PRINT S
Си
#include <stdio.h>
#define N 30
void main(void)
{int a[N];
int i, x, y;
float s;
for (i=0; i<N; i++)
scanf("%d", &a[i]);
x=0;
y=0;
for (i=0; i<N; i++)
if (a[i]%2!=0)
{
x=x+a[i];
y++;
}
s=(float)x/y;
printf("%f", s);
}
Пример . (С2) Опишите на русском языке или одном из
языков программирования алгоритм вычисления количества
наибольших элементов в заданном целочисленном массиве из
30 элементов.
Паскаль
var
a:array[1..30] of integer;
i, k, max: integer;
begin
for i:=1 to 30 do
read(a[i]);
Бейсик
DIM I, K, max, A(30) AS INTEGER
FOR I=1 to 30
INPUT A(I)
NEXT I
Си
void main(void)
{ int i, k, max, a[30];
for( i=0;i<30;i++)
scanf(“%d",&a[i]);
Паскаль
var
a:array[1..30] of integer;
i, k, max: integer;
begin
for i:=1 to 30 do
read(a[i]);
max:=a[1]; k:= 1;
Бейсик
DIM I, K,max,A(30) AS INTEGER
FOR I=1 to 30
INPUT A(I)
NEXT I
max=A(1): k= 1
Си
void main(void)
{ int i, k, max, a[30];
for( i=0;i<30;i++)
scanf(“%d",&a[i]);
max=a[0]; k= 1;
Паскаль
var
a:array[1..30] of integer;
i, k, max: integer;
begin
for i:=1 to 30 do
read(a[i]);
max:=a[1]; k:= 1;
for i:=2 to 30 do
if a [i] > max
then
Бейсик
DIM I, K,max,A(30) AS INTEGER
FOR I=1 to 30
INPUT A(I)
NEXT I
max=A(1): k= 1
FOR I = 2 TO 30
IF A(I) >max THEN
Си
void main(void)
{ int i, k, max, a[30];
for( i=0;i<30;i++)
scanf(“%d",&a[i]);
max=a[0]; k= 1;
for( i=1;i<30;i++)
if (a [i] > max)
Паскаль
var
a:array[1..30] of integer;
i, k, max: integer;
begin
for i:=1 to 30 do
read(a[i]);
max:=a[1]; k:= 1;
for i:=2 to 30 do
if a [i] > max
then
begin
max:= a[i] ; k:=1
end
Бейсик
DIM I, K,max,A(30) AS INTEGER
FOR I=1 to 30
INPUT A(I)
NEXT I
max=A(1): k= 1
FOR I = 2 TO 30
IF A(I) >max THEN
max = A(I): K=1
Си
void main(void)
{ int i, k, max, a[30];
for( i=0;i<30;i++)
scanf(“%d",&a[i]);
max=a[0]; k= 1;
for( i=1;i<30;i++)
if (a [i] > max)
{max= a[i] ; k=1;}
Паскаль
var
a:array[1..30] of integer;
i, k, max: integer;
begin
for i:=1 to 30 do
read(a[i]);
max:=a[1]; k:= 1;
for i:=2 to 30 do
if a [i] > max
then
begin
max:= a[i] ; k:=1
end
else
if a[i]=max
then k:=k+1;
Бейсик
DIM I, K,max,A(30) AS INTEGER
FOR I=1 to 30
INPUT A(I)
NEXT I
max=A(1): k= 1
FOR I = 2 TO 30
IF A(I) >max THEN
max = A(I): K=1
ELSE
IF A(I)=max THEN K=K+1
ENDIF
Си
void main(void)
{ int i, k, max, a[30];
for( i=0;i<30;i++)
scanf(“%d",&a[i]);
max=a[0]; k= 1;
for( i=1;i< 30;i++)
if (a [i] > max)
{max= a[i] ; k=1;}
else
if (a[i]==max)
k++;
Паскаль
var
a:array[1..30] of integer;
i, k, max: integer;
begin
for i:=1 to 30 do
read(a[i]);
max:=a[1]; k:= 1;
for i:=2 to 30 do
if a [i] > max
then
begin
max:= a[i] ; k:=1
end
else
if a[i]=max
then k:=k+1;
write(k)
end.
Бейсик
DIM I, K, MAX,A(30) AS INTEGER
FOR I=1 to 30
INPUT A(I)
NEXT I
MAX=A(1): k= 1
FOR I = 2 TO 30
IF A(I) >MAX THEN
MAX = A(I): K=1
ELSE
IF A(I)=MAX THEN K=K+1
ENDIF
NEXT I
PRINT K
END
Си
void main(void)
{ int i, k, max, a[30];
for( i=0;i< 30;i++)
scanf(“%d",&a[i]);
max=a[0]; k= 1;
for( i=1;i< 30;i++)
if (a [i] > max)
{max= a[i] ; k=1;}
else
if (a[i]==max)
k++;
printf(“%d”,k);
}
Паскаль
var
a:array[1..30] of integer;
i, k, max: integer;
begin
for i:=1 to 30 do
read(a[i]);
max:=a[1]; k:= 1;
for i:=2 to 30 do
if a [i] > max
then
begin
max:= a[i] ; k:=1
end
else
if a[i]=max
then k:=k+1;
write(k)
end.
Бейсик
DIM I, K, MAX,A(30) AS INTEGER
FOR I=1 to 30
INPUT A(I)
NEXT I
MAX=A(1): k= 1
FOR I = 2 TO 30
IF A(I) >MAX THEN
MAX = A(I): K=1
ELSE
IF A(I)=MAX THEN K=K+1
ENDIF
NEXT I
PRINT K
END
Си
void main(void)
{ int i, k, max, a[30];
for( i=0;i< 30;i++)
scanf(“%d",&a[i]);
max=a[0]; k= 1;
for( i=1;i< 30;i++)
if (a [i] > max)
{max= a[i] ; k=1;}
else
if (a[i]==max)
k++;
printf(“%d”,k);
}
Пример 9. (С2) С клавиатуры вводят
целые числа. Признак конца ввода -
ввод нуля. Опишите на русском языке
или одном из языков
программирования алгоритм
вычисления суммы тех чисел, которые
кратны трем. Считаем, что хотя бы
одно такое число в последовательности
есть.
Паскаль
var
a, S: integer;
begin
S:=0;
Бейсик
DIM A,S AS INTEGER
S=0
Си
void main()
{ int a,S;
S=0;
Паскаль
var
a, S: integer;
begin
S:=0;
readln(a);
While (a<>0) do
Begin
Бейсик
DIM A,S AS INTEGER
S=0
INPUT A
WHILE A<> 0
Си
void main()
{ int a,S;
S=0;
scanf(“%d",&a);
while(a <>0)
{
Паскаль
var
a, S: integer;
begin
S:=0;
readln(a);
While (a<>0) do
Begin
if (a mod 3 = 0) then
S:=S+a;
Бейсик
DIM A,S AS INTEGER
S=0
INPUT A
WHILE A<> 0
IF A MOD 3 = 0 THEN
S = S+A
ENDIF
Си
void main()
{ int a,S;
S=0;
scanf(“%d",&a);
while(a <>0)
{
if (a % 3 == 0)
S+=a;
Паскаль
var
a, S: integer;
begin
S:=0;
readln(a);
While (a<>0) do
Begin
if (a mod 3 = 0) then
S:=S+a;
Readln(a)
End;
Бейсик
DIM A,S AS INTEGER
S=0
INPUT A
WHILE A<> 0
IF A MOD 3 = 0 THEN
S = S+A
ENDIF
INPUT A
WEND
Си
void main()
{ int a,S;
S=0;
scanf(“%d",&a);
while(a <>0)
{
if (a % 3 == 0)
S+=a;
scanf(“%d",&a);
}
Паскаль
var
a, S: integer;
begin
S:=0;
readln(a);
While (a<>0) do
Begin
if (a mod 3 = 0) then
S:=S+a;
Readln(a)
End;
writeln(S)
end.
Бейсик
DIM A,S AS INTEGER
S=0
INPUT A
WHILE A<> 0
IF A MOD 3 = 0 THEN
S = S+A
ENDIF
INPUT A
WEND
PRINT S
END
Си
void main()
{ int a,S;
S=0;
scanf(“%d",&a);
while(a <>0)
{
if (a % 3 == 0)
S+=a;
scanf(“%d",&a);
}
printf(“%d”,k);
}

More Related Content

What's hot

8 3-4
8 3-48 3-4
лекция 8 арифметические операции информатика
лекция 8 арифметические операции информатикалекция 8 арифметические операции информатика
лекция 8 арифметические операции информатикаGulnaz Shakirova
 
лекция 8 арифметические операции информатика
лекция 8 арифметические операции информатикалекция 8 арифметические операции информатика
лекция 8 арифметические операции информатикаGulnaz Shakirova
 
Запись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка ПаскальЗапись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка Паскаль
Andrey Dolinin
 
представление чисел в памяти компьютера
представление чисел в памяти компьютерапредставление чисел в памяти компьютера
представление чисел в памяти компьютера
Andrey Dolinin
 
Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1LiloSEA
 
представление чисел в компьютере
представление чисел в компьютерепредставление чисел в компьютере
представление чисел в компьютереЕлена Ключева
 
8 3-3
8 3-38 3-3
12
1212
12JIuc
 
8 3-5
8 3-58 3-5
11
1111
11JIuc
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкетаstudent_kai
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке Cstudent_kai
 
Огранизация ввода и вывода данных
Огранизация ввода и вывода данныхОгранизация ввода и вывода данных
Огранизация ввода и вывода данных
Andrey Dolinin
 
генераторы псевдослучайных последовательностей и шифрование методом гаммирования
генераторы псевдослучайных последовательностей и шифрование методом гаммированиягенераторы псевдослучайных последовательностей и шифрование методом гаммирования
генераторы псевдослучайных последовательностей и шифрование методом гаммирования
hmyrhik nikita
 
перевод чисел
перевод чиселперевод чисел
перевод чиселzhu4ka
 

What's hot (17)

8 3-4
8 3-48 3-4
8 3-4
 
лекция 8 арифметические операции информатика
лекция 8 арифметические операции информатикалекция 8 арифметические операции информатика
лекция 8 арифметические операции информатика
 
лекция 8 арифметические операции информатика
лекция 8 арифметические операции информатикалекция 8 арифметические операции информатика
лекция 8 арифметические операции информатика
 
Запись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка ПаскальЗапись вспомогательный алгоритмов на языка Паскаль
Запись вспомогательный алгоритмов на языка Паскаль
 
представление чисел в памяти компьютера
представление чисел в памяти компьютерапредставление чисел в памяти компьютера
представление чисел в памяти компьютера
 
Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1Nikolay Shilov. CSEDays 1
Nikolay Shilov. CSEDays 1
 
представление чисел в компьютере
представление чисел в компьютерепредставление чисел в компьютере
представление чисел в компьютере
 
8 3-3
8 3-38 3-3
8 3-3
 
12
1212
12
 
8 3-5
8 3-58 3-5
8 3-5
 
11
1111
11
 
презентации продолжение банкета
презентации продолжение банкетапрезентации продолжение банкета
презентации продолжение банкета
 
основы программирования на языке C
основы программирования на языке Cосновы программирования на языке C
основы программирования на языке C
 
Огранизация ввода и вывода данных
Огранизация ввода и вывода данныхОгранизация ввода и вывода данных
Огранизация ввода и вывода данных
 
генераторы псевдослучайных последовательностей и шифрование методом гаммирования
генераторы псевдослучайных последовательностей и шифрование методом гаммированиягенераторы псевдослучайных последовательностей и шифрование методом гаммирования
генераторы псевдослучайных последовательностей и шифрование методом гаммирования
 
лекция 1
лекция 1лекция 1
лекция 1
 
перевод чисел
перевод чиселперевод чисел
перевод чисел
 

Viewers also liked

Fandocs.com
Fandocs.comFandocs.com
Fandocs.com
2berkas
 
Пётр 1 - Великий Император России
Пётр 1 - Великий Император РоссииПётр 1 - Великий Император России
Пётр 1 - Великий Император России
2berkas
 
Timeline
TimelineTimeline
Timelineabcl
 
English morphology affixiations (ades)
English morphology affixiations (ades)English morphology affixiations (ades)
English morphology affixiations (ades)Ade Sudirman SC
 
English morphology "Derivation" (AdeS)
English morphology "Derivation" (AdeS)English morphology "Derivation" (AdeS)
English morphology "Derivation" (AdeS)Ade Sudirman SC
 

Viewers also liked (7)

Fandocs.com
Fandocs.comFandocs.com
Fandocs.com
 
Пётр 1 - Великий Император России
Пётр 1 - Великий Император РоссииПётр 1 - Великий Император России
Пётр 1 - Великий Император России
 
Timeline
TimelineTimeline
Timeline
 
English morphology affixiations (ades)
English morphology affixiations (ades)English morphology affixiations (ades)
English morphology affixiations (ades)
 
Nouns (2nd Meeting)
Nouns (2nd Meeting)Nouns (2nd Meeting)
Nouns (2nd Meeting)
 
English morphology "Derivation" (AdeS)
English morphology "Derivation" (AdeS)English morphology "Derivation" (AdeS)
English morphology "Derivation" (AdeS)
 
Topic sentence (ades)
Topic sentence (ades)Topic sentence (ades)
Topic sentence (ades)
 

Similar to Презентация на тему: Информатика и ИКТ. ЕГЭ 2012

Презентация на тему: Информатика и ИКТ
Презентация на тему: Информатика и ИКТПрезентация на тему: Информатика и ИКТ
Презентация на тему: Информатика и ИКТ2berkas
 
лабораторная работа №3
лабораторная работа №3лабораторная работа №3
лабораторная работа №3Zhanna Kazakova
 
Цикл For
Цикл ForЦикл For
Цикл For
radgrad51
 
Презентация на тему: ЕГЭ информатика
Презентация на тему: ЕГЭ информатикаПрезентация на тему: ЕГЭ информатика
Презентация на тему: ЕГЭ информатика2berkas
 
задания с олейник
задания с олейникзадания с олейник
задания с олейникguest1a21938
 
задания части С олейник
задания части С олейникзадания части С олейник
задания части С олейникprojekt92
 
Ob pr simv
Ob pr simvOb pr simv
Ob pr simvMou Sk
 
Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"
Fwdays
 
сортировка массива
сортировка массивасортировка массива
сортировка массиваlonge7
 
ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019
ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019
ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019
QADay
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь КудринDevDay
 
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИСИспользуем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
2ГИС Технологии
 
Python
PythonPython
Pythonpelid
 
паскаль
паскальпаскаль
паскаль
Гимназия
 
Первые шаги в программировании
Первые шаги  в программированииПервые шаги  в программировании
Первые шаги в программировании
Екатерина Осадчая
 
msumobi2. Лекция 1
msumobi2. Лекция 1msumobi2. Лекция 1
msumobi2. Лекция 1
Глеб Тарасов
 

Similar to Презентация на тему: Информатика и ИКТ. ЕГЭ 2012 (18)

Презентация на тему: Информатика и ИКТ
Презентация на тему: Информатика и ИКТПрезентация на тему: Информатика и ИКТ
Презентация на тему: Информатика и ИКТ
 
Lektsia 9
Lektsia 9Lektsia 9
Lektsia 9
 
лабораторная работа №3
лабораторная работа №3лабораторная работа №3
лабораторная работа №3
 
Цикл For
Цикл ForЦикл For
Цикл For
 
Презентация на тему: ЕГЭ информатика
Презентация на тему: ЕГЭ информатикаПрезентация на тему: ЕГЭ информатика
Презентация на тему: ЕГЭ информатика
 
задания с олейник
задания с олейникзадания с олейник
задания с олейник
 
задания части С олейник
задания части С олейникзадания части С олейник
задания части С олейник
 
Ob pr simv
Ob pr simvOb pr simv
Ob pr simv
 
Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"Николай Паламарчук "Functional Programming basics for PHP developers"
Николай Паламарчук "Functional Programming basics for PHP developers"
 
Algo 00
Algo 00Algo 00
Algo 00
 
сортировка массива
сортировка массивасортировка массива
сортировка массива
 
ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019
ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019
ЄВГЕН КЛИМЕНКО «Think like a tester, act like an engineer» Lviv QA Day 2019
 
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
«Используем неизменяемые данные и создаем качественный код», Игорь Кудрин
 
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИСИспользуем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
Используем неизменяемые данные и создаем качественный код — Игорь Кудрин, 2ГИС
 
Python
PythonPython
Python
 
паскаль
паскальпаскаль
паскаль
 
Первые шаги в программировании
Первые шаги  в программированииПервые шаги  в программировании
Первые шаги в программировании
 
msumobi2. Лекция 1
msumobi2. Лекция 1msumobi2. Лекция 1
msumobi2. Лекция 1
 

More from 2berkas

Презентация на тему: Информатика (младшая группа)
Презентация на тему: Информатика (младшая группа)Презентация на тему: Информатика (младшая группа)
Презентация на тему: Информатика (младшая группа)2berkas
 
Презентация на тему: Введение в ИКТ
Презентация на тему: Введение в ИКТПрезентация на тему: Введение в ИКТ
Презентация на тему: Введение в ИКТ2berkas
 
Презентация на тему: Азы компьютерной грамотности
Презентация на тему: Азы компьютерной грамотностиПрезентация на тему: Азы компьютерной грамотности
Презентация на тему: Азы компьютерной грамотности2berkas
 
Презентация на тему: Слова "не", "и", "или" на карте множеств
Презентация на тему: Слова "не", "и", "или" на карте множествПрезентация на тему: Слова "не", "и", "или" на карте множеств
Презентация на тему: Слова "не", "и", "или" на карте множеств2berkas
 
Презентация на тему: Практика работы на компьютере
Презентация на тему: Практика работы на компьютереПрезентация на тему: Практика работы на компьютере
Презентация на тему: Практика работы на компьютере2berkas
 
Презентация на тему: Отношения между множествами. Графы и их табличные описания
Презентация на тему: Отношения между множествами. Графы и их табличные описанияПрезентация на тему: Отношения между множествами. Графы и их табличные описания
Презентация на тему: Отношения между множествами. Графы и их табличные описания2berkas
 
Презентация группы № 12 дс №14 г. Сморгонь
Презентация группы № 12 дс №14 г. СморгоньПрезентация группы № 12 дс №14 г. Сморгонь
Презентация группы № 12 дс №14 г. Сморгонь2berkas
 
Презентация на тему: Ветвление в алгоритме
Презентация на тему: Ветвление в алгоритмеПрезентация на тему: Ветвление в алгоритме
Презентация на тему: Ветвление в алгоритме2berkas
 
Презентация на тему: Алгоритмы
Презентация на тему: АлгоритмыПрезентация на тему: Алгоритмы
Презентация на тему: Алгоритмы2berkas
 
Презентация на тему: Путешествие на планету Информатика
Презентация на тему: Путешествие на планету ИнформатикаПрезентация на тему: Путешествие на планету Информатика
Презентация на тему: Путешествие на планету Информатика2berkas
 
Презентация на тему: Подготовка к контрольной работ
Презентация на тему: Подготовка к контрольной работПрезентация на тему: Подготовка к контрольной работ
Презентация на тему: Подготовка к контрольной работ2berkas
 
Презентация на тему: Информатика
Презентация на тему: ИнформатикаПрезентация на тему: Информатика
Презентация на тему: Информатика2berkas
 
Презентация на тему: Содержание и объем понятия
Презентация на тему: Содержание и объем понятияПрезентация на тему: Содержание и объем понятия
Презентация на тему: Содержание и объем понятия2berkas
 
Презентация на тему: Рабочий стол. Управление компьютером с помощью мыши
Презентация на тему: Рабочий стол. Управление компьютером с помощью мышиПрезентация на тему: Рабочий стол. Управление компьютером с помощью мыши
Презентация на тему: Рабочий стол. Управление компьютером с помощью мыши2berkas
 
Презентация на тему: Проверочная работа по информатике
Презентация на тему: Проверочная работа по информатикеПрезентация на тему: Проверочная работа по информатике
Презентация на тему: Проверочная работа по информатике2berkas
 
Презентация на тему: Признаки объектов
Презентация на тему: Признаки объектовПрезентация на тему: Признаки объектов
Презентация на тему: Признаки объектов2berkas
 
Презентация на тему: Подготовка учащихся 5-7 классов по информатике и ИКТ
Презентация на тему: Подготовка учащихся 5-7 классов по информатике и ИКТПрезентация на тему: Подготовка учащихся 5-7 классов по информатике и ИКТ
Презентация на тему: Подготовка учащихся 5-7 классов по информатике и ИКТ2berkas
 
Презентация на тему: Концепция курса информатики и ИКТ в 5-7 классах
Презентация на тему: Концепция курса информатики и ИКТ в 5-7 классахПрезентация на тему: Концепция курса информатики и ИКТ в 5-7 классах
Презентация на тему: Концепция курса информатики и ИКТ в 5-7 классах2berkas
 
Презентация на тему: Компьютерная графика
Презентация на тему: Компьютерная графикаПрезентация на тему: Компьютерная графика
Презентация на тему: Компьютерная графика2berkas
 
Презентация на тему: Информация. Информатика. Компьютер
Презентация на тему: Информация. Информатика. КомпьютерПрезентация на тему: Информация. Информатика. Компьютер
Презентация на тему: Информация. Информатика. Компьютер2berkas
 

More from 2berkas (20)

Презентация на тему: Информатика (младшая группа)
Презентация на тему: Информатика (младшая группа)Презентация на тему: Информатика (младшая группа)
Презентация на тему: Информатика (младшая группа)
 
Презентация на тему: Введение в ИКТ
Презентация на тему: Введение в ИКТПрезентация на тему: Введение в ИКТ
Презентация на тему: Введение в ИКТ
 
Презентация на тему: Азы компьютерной грамотности
Презентация на тему: Азы компьютерной грамотностиПрезентация на тему: Азы компьютерной грамотности
Презентация на тему: Азы компьютерной грамотности
 
Презентация на тему: Слова "не", "и", "или" на карте множеств
Презентация на тему: Слова "не", "и", "или" на карте множествПрезентация на тему: Слова "не", "и", "или" на карте множеств
Презентация на тему: Слова "не", "и", "или" на карте множеств
 
Презентация на тему: Практика работы на компьютере
Презентация на тему: Практика работы на компьютереПрезентация на тему: Практика работы на компьютере
Презентация на тему: Практика работы на компьютере
 
Презентация на тему: Отношения между множествами. Графы и их табличные описания
Презентация на тему: Отношения между множествами. Графы и их табличные описанияПрезентация на тему: Отношения между множествами. Графы и их табличные описания
Презентация на тему: Отношения между множествами. Графы и их табличные описания
 
Презентация группы № 12 дс №14 г. Сморгонь
Презентация группы № 12 дс №14 г. СморгоньПрезентация группы № 12 дс №14 г. Сморгонь
Презентация группы № 12 дс №14 г. Сморгонь
 
Презентация на тему: Ветвление в алгоритме
Презентация на тему: Ветвление в алгоритмеПрезентация на тему: Ветвление в алгоритме
Презентация на тему: Ветвление в алгоритме
 
Презентация на тему: Алгоритмы
Презентация на тему: АлгоритмыПрезентация на тему: Алгоритмы
Презентация на тему: Алгоритмы
 
Презентация на тему: Путешествие на планету Информатика
Презентация на тему: Путешествие на планету ИнформатикаПрезентация на тему: Путешествие на планету Информатика
Презентация на тему: Путешествие на планету Информатика
 
Презентация на тему: Подготовка к контрольной работ
Презентация на тему: Подготовка к контрольной работПрезентация на тему: Подготовка к контрольной работ
Презентация на тему: Подготовка к контрольной работ
 
Презентация на тему: Информатика
Презентация на тему: ИнформатикаПрезентация на тему: Информатика
Презентация на тему: Информатика
 
Презентация на тему: Содержание и объем понятия
Презентация на тему: Содержание и объем понятияПрезентация на тему: Содержание и объем понятия
Презентация на тему: Содержание и объем понятия
 
Презентация на тему: Рабочий стол. Управление компьютером с помощью мыши
Презентация на тему: Рабочий стол. Управление компьютером с помощью мышиПрезентация на тему: Рабочий стол. Управление компьютером с помощью мыши
Презентация на тему: Рабочий стол. Управление компьютером с помощью мыши
 
Презентация на тему: Проверочная работа по информатике
Презентация на тему: Проверочная работа по информатикеПрезентация на тему: Проверочная работа по информатике
Презентация на тему: Проверочная работа по информатике
 
Презентация на тему: Признаки объектов
Презентация на тему: Признаки объектовПрезентация на тему: Признаки объектов
Презентация на тему: Признаки объектов
 
Презентация на тему: Подготовка учащихся 5-7 классов по информатике и ИКТ
Презентация на тему: Подготовка учащихся 5-7 классов по информатике и ИКТПрезентация на тему: Подготовка учащихся 5-7 классов по информатике и ИКТ
Презентация на тему: Подготовка учащихся 5-7 классов по информатике и ИКТ
 
Презентация на тему: Концепция курса информатики и ИКТ в 5-7 классах
Презентация на тему: Концепция курса информатики и ИКТ в 5-7 классахПрезентация на тему: Концепция курса информатики и ИКТ в 5-7 классах
Презентация на тему: Концепция курса информатики и ИКТ в 5-7 классах
 
Презентация на тему: Компьютерная графика
Презентация на тему: Компьютерная графикаПрезентация на тему: Компьютерная графика
Презентация на тему: Компьютерная графика
 
Презентация на тему: Информация. Информатика. Компьютер
Презентация на тему: Информация. Информатика. КомпьютерПрезентация на тему: Информация. Информатика. Компьютер
Презентация на тему: Информация. Информатика. Компьютер
 

Презентация на тему: Информатика и ИКТ. ЕГЭ 2012

  • 1. ЕГЭ 2012 Информатика и ИКТ Консультация №3
  • 3. Сколько клеток лабиринта соответствуют требованию, что, начав движение в ней и выполнив предложенную программу, РОБОТ уцелеет и остановится в закрашенной клетке (клетка F6)? НАЧАЛО ПОКА<справа свободно ИЛИ снизу свободно> ПОКА <снизу свободно> вниз КОНЕЦ ПОКА ПОКА <справа свободно> вправо КОНЕЦ ПОКА КОНЕЦ ПОКА КОНЕЦ
  • 4. НАЧАЛО ПОКА<справа свободно ИЛИ снизу свободно> ПОКА <снизу свободно> вниз КОНЕЦ ПОКА ПОКА <справа свободно> вправо КОНЕЦ ПОКА КОНЕЦ ПОКА КОНЕЦ
  • 5. НАЧАЛО ПОКА<справа свободно ИЛИ снизу свободно> ПОКА <снизу свободно> вниз КОНЕЦ ПОКА ПОКА <справа свободно> вправо КОНЕЦ ПОКА КОНЕЦ ПОКА КОНЕЦ
  • 6. НАЧАЛО ПОКА<справа свободно ИЛИ снизу свободно> ПОКА <снизу свободно> вниз КОНЕЦ ПОКА ПОКА <справа свободно> вправо КОНЕЦ ПОКА КОНЕЦ ПОКА КОНЕЦ
  • 7. НАЧАЛО ПОКА<справа свободно ИЛИ снизу свободно> ПОКА <снизу свободно> вниз КОНЕЦ ПОКА ПОКА <справа свободно> вправо КОНЕЦ ПОКА КОНЕЦ ПОКА КОНЕЦ
  • 8. НАЧАЛО ПОКА<справа свободно ИЛИ снизу свободно> ПОКА <снизу свободно> вниз КОНЕЦ ПОКА ПОКА <справа свободно> вправо КОНЕЦ ПОКА КОНЕЦ ПОКА КОНЕЦ
  • 9. НАЧАЛО ПОКА<справа свободно ИЛИ снизу свободно> ПОКА <снизу свободно> вниз КОНЕЦ ПОКА ПОКА <справа свободно> вправо КОНЕЦ ПОКА КОНЕЦ ПОКА КОНЕЦ Ответ 26
  • 10. Пример 1. Значения двух массивов a[1..100] и b[1..100] задаются с помощью следующего фрагмента программы. Какой элемент массива B будет наименьшим (указать его номер)? Бейсик FOR t=1 TO 100 A(t)=(t-80)*(t-80) NEXT t FOR t=1 TO 100 B(101-t)=A(t) NEXT t Паскаль for t:=1 to 100 do a[t]:=(t-80)*(t-80); for t:=1 to 100 do b[101- t]:=a[t] Си for(t=1;t<=100;t++) a[t] = (t-80)*(t-80); for(t=1;t<=100;t++) b[101-t] =a[t]
  • 11. Бейсик FOR t=1 TO 100 A(t)=(t-10) NEXT t Паскаль for t:=1 to 100 do a[t]:=(t-10); Си for(t=1;t<=100;t++) a[t] = (t-10); A(1) A(2) A(3) A(9) A(10) A(11) A(100) -9 -8 -7 -1 0 1 90
  • 12. A(1) A(2) A(3) A(9) A(10) A(11) A(100) -9 -8 -7 -1 0 1 90 Бейсик FOR t=1 TO 100 A(t)=(t-10) NEXT t FOR t=1 TO 100 B(t)=A(t)*t NEXT t Паскаль for t:=1 to 100 do a[t]:=(t-10); for t:=1 to 100 do b[t]:=a[t]*t; Си for(t=1;t<=100;t++) a[t] = (t-10); for(t=1;t<=100;t++) b[t] =a[t] *t; B(1) B(2) B(3) B(4) B(5) B(6) B(7) B(8) B(10) B(100) -9 -16 -21 -24 -25 -24 -21 -16 0 9000
  • 13. Пример 2. Найти сумму элементов двумерного массива при n=30.
  • 14.
  • 15.
  • 16.
  • 17. Количество элементов = 30•30 Диагональ = 30 элементов Количество элементов ниже диагонали = (30•30-30)/2 Сумма = (30•30-30)/2 = 435 Ответ: 435
  • 18. Пример В программе описан одномерный целочисленный массив с индексами от 0 до n. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив: s = 0 z = A(n) FOR i = 0 TO n-1 IF A(i) < z THEN s = s + A(i) NEXT i s:=0; z:=A[n]; for i:=0 to n-1 do if A[i]<z then s:=s + A[i]; s = 0; z = A[n]; for (i = 0; i < n; i++) if (A[i] < z) s=s+ A[i]; Чему будет равно значение переменной s после выполнения данной программы? Ответ должен быть верным при любых значениях элементов массива. 1. Минимальному элементу в массиве A 2. Количеству элементов массива A, меньших последнего элемента массива 3. Сумме всех элементов массива А, меньших последнего элемента массива 4. Индексу первого элемента массива А, который меньше A[n]
  • 19. Пример В программе описан одномерный целочисленный массив с индексами от 0 до n. Ниже представлен записанный на разных языках программирования фрагмент одной и той же программы, обрабатывающей данный массив: s = 0 z = A(n) FOR i = 0 TO n-1 IF A(i) < z THEN s = s + A(i) NEXT i s:=0; z:=A[n]; for i:=0 to n-1 do if A[i]<z then s:=s + A[i]; s = 0; z = A[n]; for (i = 0; i < n; i++) if (A[i] < z) s=s+ A[i]; Чему будет равно значение переменной s после выполнения данной программы? Ответ должен быть верным при любых значениях элементов массива. 1. Минимальному элементу в массиве A 2. Количеству элементов массива A, меньших последнего элемента массива 3. Сумме всех элементов массива А, меньших последнего элемента массива 4. Индексу первого элемента массива А, который меньше A[n] Ответе: 3
  • 20. Пример . Определите, что будет напечатано в результате выполнения программы Бейсик Паскаль Си DIM N, S AS INTEGER N = 0 S = 512 WHILE S >= 0 S = S - 20 N = N + 1 WEND PRINTN var n, s: integer; begin n := 0; s := 512; while s >= 0 do begin s := s - 20; n := n + 1 end; write(n) end. #include<stdio.h> void main() { int n, s; n = 0; s = 512; while (s >= 0) { s = s - 20; n = n + 1; } printf("%d", n); }
  • 21. Бейсик Паскаль Си DIM N, S AS INTEGER N = 0 S = 512 WHILE S >= 0 S = S - 20 N = N + 1 WEND PRINTN var n, s: integer; begin n := 0; s := 512; while s >= 0 do begin s := s - 20; n := n + 1 end; write(n) end. #include<stdio.h> void main() { int n, s; n = 0; s = 512; while (s >= 0) { s = s - 20; n = n + 1; } printf("%d", n);} s n 512 512-20 >=0 512-20-20 = 512-20*2 >=0 0 1 2
  • 22. Бейсик Паскаль Си DIM N, S AS INTEGER N = 0 S = 512 WHILE S >= 0 S = S - 20 N = N + 1 WEND PRINTN var n, s: integer; begin n := 0; s := 512; while s >= 0 do begin s := s - 20; n := n + 1 end; write(n) end. #include<stdio.h> void main() { int n, s; n = 0; s = 512; while (s >= 0) { s = s - 20; n = n + 1; } printf("%d", n);} s n 512 512-20 >=0 512-20-20=512-20*2 >=0 512-20*2-20 = 512-20*3 >=0 0 1 2 3
  • 23. Бейсик Паскаль Си DIM N, S AS INTEGER N = 0 S = 512 WHILE S >= 0 S = S - 20 N = N + 1 WEND PRINTN var n, s: integer; begin n := 0; s := 512; while s >= 0 do begin s := s - 20; n := n + 1 end; write(n) end. #include<stdio.h> void main() { int n, s; n = 0; s = 512; while (s >= 0) { s = s - 20; n = n + 1; } printf("%d", n);} s n 512 512-20 >=0 512-20-20=512-20*2 >=0 512-20*2-20 = 512-20*3 >=0 • • • 512-20*25 = 12 >=0 0 1 2 3 • • • 25
  • 24. Бейсик Паскаль Си DIM N, S AS INTEGER N = 0 S = 512 WHILE S >= 0 S = S - 20 N = N + 1 WEND PRINTN var n, s: integer; begin n := 0; s := 512; while s >= 0 do begin s := s - 20; n := n + 1 end; write(n) end. #include<stdio.h> void main() { int n, s; n = 0; s = 512; while (s >= 0) { s = s - 20; n = n + 1; } printf("%d", n);} s n 512 512-20 >=0 512-20-20=512-20*2 >=0 512-20*2-20 = 512-20*3 >=0 • • • 512-20*25 = 12 >=0 12 – 20 <0 0 1 2 3 • • • 25 26 Ответ: 26
  • 25. Пример . Определите, что будет напечатано в результате выполнения программы, записанной ниже на разных языках программирования: Бейсик Паскаль Си DIM N, S AS INTEGER N = 1 S = 0 WHILE N <= 101 S = S + 7 N = N + 1 WEND PRINTS var n, s: integer; begin n := 1; s := 0; while n <= 101 do begin s := s + 7; n := n + 1 end; write(s) end. #include<stdio.h> void main() { int n, s; n = 1; s = 0; while (n <= 101) { s = s + 7; n = n + 1; } printf("%d", s);} n s 1 2 3 4 0 7 7 + 7 7 + 7 + 7
  • 26. Пример . Определите, что будет напечатано в результате выполнения программы, записанной ниже на разных языках программирования: Бейсик Паскаль Си DIM N, S AS INTEGER N = 1 S = 0 WHILE N <= 101 S = S + 7 N = N + 1 WEND PRINTS var n, s: integer; Begin n := 1; s := 0; while n <= 101 do begin s := s + 7; n := n + 1 end; write(s) end. #include<stdio.h> void main() { int n, s; n = 1; s = 0; while (n <= 101) { s = s + 7; n = n + 1; } printf("%d", s);} n s 1 2 3 4 t 0 7 7 + 7 = 7 *2 7 + 7 + 7 = 7*3 7 + 7 +…+ 7 = 7* (t-1)
  • 27. Бейсик Паскаль Си DIM N, S AS INTEGER N = 1 S = 0 WHILE N <= 101 S = S + 7 N = N + 1 WEND PRINTS var n, s: integer; Begin n := 1; s := 0; while n <= 101 do begin s := s + 7; n := n + 1 end; write(s) end. #include<stdio.h> void main() { int n, s; n = 1; s = 0; while (n <= 101) { s = s + 7; n = n + 1; } printf("%d", s);} n s 1 2 3 4 t 102 0 7 7 + 7 = 7 *2 7 + 7 + 7 = 7*3 7 + 7 +…+ 7 = 7* (t-1) 7 * 101 = 707 Ответ: 707
  • 28. Пример . Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 8. Бейсик Паскаль СИ DIM X, A, B AS INTEGER INPUT X A=0: B=0 WHILE X > 0 A = A+1 B = B +(X MOD 10) X = X 10 WEND PRINT A PRINT B var x, a, b: integer; begin readln(x); a:=0; b:=0; while x>0 do begin a:=a+1; b:=b+(x mod 10); x:=x div 10; end; writeln(a); write(b); end. #include<stdio.h> void main() { int x, a, b; scanf("%d", &x); a=0; b=0; while (x>0) { a=a+1; b=b + (x%10); x= x/10; } printf("%dn%d", a, b);} x = 5423 остаток от деления x на 10 = 3 x div 10 = 542 x = 542 остаток от деления x на 10 = 2 x div 10 = 54 x = 54 остаток от деления x на 10 = 4 x div 10 = 5 x = 5 остаток от деления x на 10 = 5 x div 10 = 0 x = 0
  • 29. Пример . Получив на вход число x, этот алгоритм печатает два числа a и b. Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 2, а потом 8. Бейсик Паскаль СИ DIM X, A, B AS INTEGER INPUT X A=0: B=0 WHILE X > 0 A = A+1 B = B +(X MOD 10) X = X 10 WEND PRINT A PRINT B var x, a, b: integer; begin readln(x); a:=0; b:=0; while x>0 do begin a:=a+1; b:=b+(x mod 10); x:=x div 10; end; writeln(a); write(b); end. #include<stdio.h> void main() { int x, a, b; scanf("%d", &x); a=0; b=0; while (x>0) { a=a+1; b=b + (x%10); x= x/10; } printf("%dn%d", a, b);} a =2, следовательно операторы в цикле выполнились 2 раза Выход из цикла при x=0, 10 <= x <= 99 x mod 10 (x%10) – цифра числа x, b – сумма цифр числа x b = 8, следовательно наибольшее x = 80 Ответ: 80
  • 30. Бейсик Паскаль Си DIM X, A, B AS INTEGER INPUT X A=0: B=1 WHILE X > 0 A = A+1 B = B*(X MOD 10) X = X 10 WEND PRINT A PRINT B var x, a, b: integer; begin readln(x); a:=0; b:=1; while x>0 do begin a:=a+1; b:=b*(x mod 10); x:= x div 10; end; writeln(a); write(b); end. #include<stdio.h> void main() { int x, a, b; scanf("%d", &x); a=0; b=1; while (x>0){ a=a+1; b=b*(x%10); x= x/10; } printf("%dn%d", a, b);} Пример . Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 5.
  • 31. Бейсик Паскаль Си DIM X, A, B AS INTEGER INPUT X A=0: B=1 WHILE X > 0 A = A+1 B = B*(X MOD 10) X = X 10 WEND PRINT A PRINT B var x, a, b: integer; begin readln(x); a:=0; b:=1; while x>0 do begin a:=a+1; b:=b*(x mod 10); x:= x div 10; end; writeln(a); write(b); end. #include<stdio.h> void main() { int x, a, b; scanf("%d", &x); a=0; b=1; while (x>0){ a=a+1; b=b*(x%10); x= x/10; } printf("%dn%d", a, b);} Пример . Укажите наибольшее из таких чисел x, при вводе которых алгоритм печатает сначала 3, а потом 5. a =3, следовательно операторы в цикле выполнились 3 раза 100 <= x <= 999 b – произведение цифр числа x b = 5, следовательно наибольшее x = 511 Ответ: 511
  • 32. Пример . Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырех языках): Бейсик Паскаль Си DIM A, B, T, M, R AS INTEGER A = -20: B = 20 M = A: R = F(A) FOR T = A TO B IF F(T) < R THEN M = T R = F(T) END IF NEXT T PRINT M FUNCTION F(x) F = (x-19)*(x+17); END FUNCTION var a,b,t,M,R :integer; Function F(x: integer):integer; begin F := (x-19)*(x+17); end; BEGIN a := -20; b := 20; M := a; R := F(a); for t := a to b do begin if (F(t)<R) then begin M := t; R := F(t); end; end; write(M); END. #include<stdio.h> int F(int x) { return (x-19)*(x+17); } void main() { int a, b, t, M, R; a = -20; b = 20; M = a; R = F(a); for (t=a; t<=b; t++){ if (F(t)<R) { M = t; R = F(t); } } printf("%d", M); }
  • 33. Пример . Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырех языках): Бейсик Паскаль Си DIM A, B, T, M, R AS INTEGER A = -20: B = 20 M = A: R = F(A) FOR T = A TO B IF F(T) < R THEN M = T R = F(T) END IF NEXT T PRINT M FUNCTION F(x) F = (x-19)*(x+17); END FUNCTION var a,b,t,M,R :integer; Function F(x: integer):integer; begin F := (x-19)*(x+17); end; BEGIN a := -20; b := 20; M := a; R := F(a); for t := a to b do if (F(t)<R) then begin M := t; R := F(t); end; write(M); END. #include<stdio.h> int F(int x) { return (x-19)*(x+17);} void main() { int a, b, t, M, R; a = -20; b = 20; M = a; R = F(a); for (t=a; t<=b; t++) if (F(t)<R) {M = t; R = F(t); } printf("%d", M); }
  • 34. Пример . Определите, какое число будет напечатано в результате выполнения следующего алгоритма (для Вашего удобства алгоритм представлен на четырех языках): Бейсик Паскаль Си DIM A, B, T, M, R AS INTEGER A = -20: B = 20 M = A: R = F(A) FOR T = A TO B IF F(T) < R THEN M = T R = F(T) END IF NEXT T PRINT M FUNCTION F(x) F = (x-19)*(x+17); END FUNCTION var a,b,t,M,R :integer; Function F(x: integer):integer; begin F := (x-19)*(x+17); end; BEGIN a := -20; b := 20; M := a; R := F(a); for t := a to b do if (F(t)<R) then begin M := t; R := F(t); end; write(M); END. #include<stdio.h> int F(int x) { return (x-19)*(x+17);} void main() { int a, b, t, M, R; a = -20; b = 20; M = a; R = F(a); for (t=a; t<=b; t++) if (F(t)<R) {M = t; R = F(t); } printf("%d", M); } F(x) = x2 - 2x - 323 x = -b/2a = 1 R – наименьшее значение функции M – значение x, при котором достигается минимальное значение Ответ: 1
  • 35. Задание С1 • Задача относится к повышенному уровню сложности • Программа содержит некоторое количество условий (циклов и массивов нет) • Необходимо найти ошибку в программе (смысловую, а не синтаксическую) • Изменить программу для устранения случаев неправильной работы
  • 36. Пример . Требовалось написать программу, которая вводит с клавиатуры координаты точки на плоскости (x, y – действительные числа) и определяет принадлежность точки заштрихованной области, включая ее границы. Программист торопился и написал программу неправильно. Бейсик Паскаль Си INPUT x, y IF y>=x THEN IF y>=0 THEN IF y<=2-x*x THEN PRINT "принадлежит" ELSE PRINT "не принадлежит" END IF END IF END IF END var x,y: real; begin readln(x,y); if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит') end. void main(void){ float x,y; scanf("%f %f",&x,&y); if (y>=x) if (y>=0) if (y<=2-x*x) printf("принадлежит"); else printf("не принадлежит"); }
  • 37. Последовательно выполните следующее. 1. Перерисуйте и заполните таблицу, которая показывает, как работает программа при аргументах, принадлежащих различным областям (A, B, C, D, E, F и G). Точки, лежащие на границах областей, отдельно не рассматривать. В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—" (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет". 2. Укажите, как нужно доработать программу, чтобы не было случаев ее неправильной работы. (Это можно сделать несколькими способами, достаточно указать любой способ доработки исходной программы.) Область y>=x? y>=0? y<=2-x*x? вывод верно? A B C D E F G
  • 38. Бейсик Паскаль Си IF y>=x THEN IF y>=0 THEN IF y<=2-x*x THEN PRINT "принадлежит" ELSE PRINT "не принадлежит" END IF END IF END IF END if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит') end. if (y>=x) if (y>=0) if (y<=2-x*x) printf("принадлежит"); else printf("не принадлежит"); }
  • 39. В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“ (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет". Область y>=x? y>=0? y<=2-x*x? вывод верно? A Да Да Нет Не принадлежит да B C D E F G if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит')
  • 40. В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“ (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет". Область y>=x? y>=0? y<=2-x*x? вывод верно? A Да Да Нет Не принадлежит да B Да Нет - - нет C D E F G if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит')
  • 41. В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“ (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет". Область y>=x? y>=0? y<=2-x*x? вывод верно? A Да Да Нет Не принадлежит да B Да Нет - - нет C Нет - - - нет D Нет - - - нет E F G if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит')
  • 42. В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“ (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет". Область y>=x? y>=0? y<=2-x*x? вывод верно? A Да Да Нет Не принадлежит да B Да Нет - - нет C Нет - - - нет D Нет - - - нет E Да Да Да Принадлежит да F G if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит')
  • 43. В столбцах условий укажите "да", если условие выполнится, "нет" если условие не выполнится, "—“ (прочерк), если условие не будет проверяться, «не изв.», если программа ведет себя по-разному для разных значений, принадлежащих данной области. В столбце "Программа выведет" укажите, что программа выведет на экран. Если программа ничего не выводит, напишите "—" (прочерк). Если для разных значений, принадлежащих области, будут выведены разные тексты, напишите «не изв». В последнем столбце укажите "да" или "нет". Область y>=x? y>=0? y<=2-x*x? вывод верно? A Да Да Нет Не принадлежит да B Да Нет - - нет C Нет - - - нет D Нет - - - нет E Да Да Да Принадлежит да F Да Нет - - нет G Нет - - - нет if y>=x then if y>=0 then if y<=2-x*x then write('принадлежит') else write('не принадлежит')
  • 45. (y<=2-x*x) и (y>=0) (y<=2-x*x) и (y>=x) (y<=2-x*x) и (y>=0) или (y<=2-x*x) и (y>=x) (y<=2-x*x) и ((y>=0) или (y>=x))
  • 46. Бейсик Паскаль Си INPUT x, y IF ((y>=x)or(y>=0))and(y<=2-x*x) THEN PRINT "принадлежит" ELSE PRINT "не принадлежит" END IF END var x,y: real; begin readln(x,y); if ((y>=x)or(y>=0))and(y<=2-x*x) then write('принадлежит') else write('не принадлежит') end. void main(void){ float x,y; scanf("%f %f",&x,&y); if (((y>=x) II(y>=0)) && (y<=2-x*x)) printf("принадлежит"); else printf("не принадлежит"); }
  • 47. Задание С2 • Написать короткую (≈15 строк) простую программу (например, обработка массива) • Программа линейной обработки входной последовательности
  • 48. Пример . (С2) Дан целочисленный массив из 30 элементов. Элементы массива могут принимать значения от 0 до 1000. Опишите на русском языке или на одном из языков программирования алгоритм, который позволяет подсчитать и вывести среднее арифметическое элементов массива, имеющих нечетное значение. Гарантируется, что в исходном массиве хотя бы один элемент имеет нечетное значение. Исходные данные объявлены так, как показано ниже. Запрещается использовать переменные, не описанные ниже, но разрешается не использовать часть из них.
  • 49. Паскаль const N=30; var a: array [1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do readln(a[i]); Бейсик N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I Си #include <stdio.h> #define N 30 void main(void) {int a[N]; int i, x, y; float s; for (i=0; i<N; i++) scanf("%d", &a[i]);
  • 50. Паскаль const N=30; var a: array [1..N] of integer; i, x, y: integer; s: real; begin for i:=1 to N do readln(a[i]); x:=0; y:=0; for i:=1 to N do if (a[i] mod 2<>0) then begin x:=x+a[i]; y:=y+1; end; s:=x/y; writeln(s); end. Бейсик N=30 DIM A(N) AS INTEGER DIM I, X, Y AS INTEGER DIM S AS SINGLE FOR I = 1 TO N INPUT A(I) NEXT I X = 0 Y = 0 FOR I = 1 TO N IF A(I) MOD 2 <> 0 THEN X = X + A(I) Y = Y + 1 ENDIF NEXT I S = X / Y PRINT S Си #include <stdio.h> #define N 30 void main(void) {int a[N]; int i, x, y; float s; for (i=0; i<N; i++) scanf("%d", &a[i]); x=0; y=0; for (i=0; i<N; i++) if (a[i]%2!=0) { x=x+a[i]; y++; } s=(float)x/y; printf("%f", s); }
  • 51. Пример . (С2) Опишите на русском языке или одном из языков программирования алгоритм вычисления количества наибольших элементов в заданном целочисленном массиве из 30 элементов.
  • 52. Паскаль var a:array[1..30] of integer; i, k, max: integer; begin for i:=1 to 30 do read(a[i]); Бейсик DIM I, K, max, A(30) AS INTEGER FOR I=1 to 30 INPUT A(I) NEXT I Си void main(void) { int i, k, max, a[30]; for( i=0;i<30;i++) scanf(“%d",&a[i]);
  • 53. Паскаль var a:array[1..30] of integer; i, k, max: integer; begin for i:=1 to 30 do read(a[i]); max:=a[1]; k:= 1; Бейсик DIM I, K,max,A(30) AS INTEGER FOR I=1 to 30 INPUT A(I) NEXT I max=A(1): k= 1 Си void main(void) { int i, k, max, a[30]; for( i=0;i<30;i++) scanf(“%d",&a[i]); max=a[0]; k= 1;
  • 54. Паскаль var a:array[1..30] of integer; i, k, max: integer; begin for i:=1 to 30 do read(a[i]); max:=a[1]; k:= 1; for i:=2 to 30 do if a [i] > max then Бейсик DIM I, K,max,A(30) AS INTEGER FOR I=1 to 30 INPUT A(I) NEXT I max=A(1): k= 1 FOR I = 2 TO 30 IF A(I) >max THEN Си void main(void) { int i, k, max, a[30]; for( i=0;i<30;i++) scanf(“%d",&a[i]); max=a[0]; k= 1; for( i=1;i<30;i++) if (a [i] > max)
  • 55. Паскаль var a:array[1..30] of integer; i, k, max: integer; begin for i:=1 to 30 do read(a[i]); max:=a[1]; k:= 1; for i:=2 to 30 do if a [i] > max then begin max:= a[i] ; k:=1 end Бейсик DIM I, K,max,A(30) AS INTEGER FOR I=1 to 30 INPUT A(I) NEXT I max=A(1): k= 1 FOR I = 2 TO 30 IF A(I) >max THEN max = A(I): K=1 Си void main(void) { int i, k, max, a[30]; for( i=0;i<30;i++) scanf(“%d",&a[i]); max=a[0]; k= 1; for( i=1;i<30;i++) if (a [i] > max) {max= a[i] ; k=1;}
  • 56. Паскаль var a:array[1..30] of integer; i, k, max: integer; begin for i:=1 to 30 do read(a[i]); max:=a[1]; k:= 1; for i:=2 to 30 do if a [i] > max then begin max:= a[i] ; k:=1 end else if a[i]=max then k:=k+1; Бейсик DIM I, K,max,A(30) AS INTEGER FOR I=1 to 30 INPUT A(I) NEXT I max=A(1): k= 1 FOR I = 2 TO 30 IF A(I) >max THEN max = A(I): K=1 ELSE IF A(I)=max THEN K=K+1 ENDIF Си void main(void) { int i, k, max, a[30]; for( i=0;i<30;i++) scanf(“%d",&a[i]); max=a[0]; k= 1; for( i=1;i< 30;i++) if (a [i] > max) {max= a[i] ; k=1;} else if (a[i]==max) k++;
  • 57. Паскаль var a:array[1..30] of integer; i, k, max: integer; begin for i:=1 to 30 do read(a[i]); max:=a[1]; k:= 1; for i:=2 to 30 do if a [i] > max then begin max:= a[i] ; k:=1 end else if a[i]=max then k:=k+1; write(k) end. Бейсик DIM I, K, MAX,A(30) AS INTEGER FOR I=1 to 30 INPUT A(I) NEXT I MAX=A(1): k= 1 FOR I = 2 TO 30 IF A(I) >MAX THEN MAX = A(I): K=1 ELSE IF A(I)=MAX THEN K=K+1 ENDIF NEXT I PRINT K END Си void main(void) { int i, k, max, a[30]; for( i=0;i< 30;i++) scanf(“%d",&a[i]); max=a[0]; k= 1; for( i=1;i< 30;i++) if (a [i] > max) {max= a[i] ; k=1;} else if (a[i]==max) k++; printf(“%d”,k); }
  • 58. Паскаль var a:array[1..30] of integer; i, k, max: integer; begin for i:=1 to 30 do read(a[i]); max:=a[1]; k:= 1; for i:=2 to 30 do if a [i] > max then begin max:= a[i] ; k:=1 end else if a[i]=max then k:=k+1; write(k) end. Бейсик DIM I, K, MAX,A(30) AS INTEGER FOR I=1 to 30 INPUT A(I) NEXT I MAX=A(1): k= 1 FOR I = 2 TO 30 IF A(I) >MAX THEN MAX = A(I): K=1 ELSE IF A(I)=MAX THEN K=K+1 ENDIF NEXT I PRINT K END Си void main(void) { int i, k, max, a[30]; for( i=0;i< 30;i++) scanf(“%d",&a[i]); max=a[0]; k= 1; for( i=1;i< 30;i++) if (a [i] > max) {max= a[i] ; k=1;} else if (a[i]==max) k++; printf(“%d”,k); }
  • 59. Пример 9. (С2) С клавиатуры вводят целые числа. Признак конца ввода - ввод нуля. Опишите на русском языке или одном из языков программирования алгоритм вычисления суммы тех чисел, которые кратны трем. Считаем, что хотя бы одно такое число в последовательности есть.
  • 60. Паскаль var a, S: integer; begin S:=0; Бейсик DIM A,S AS INTEGER S=0 Си void main() { int a,S; S=0;
  • 61. Паскаль var a, S: integer; begin S:=0; readln(a); While (a<>0) do Begin Бейсик DIM A,S AS INTEGER S=0 INPUT A WHILE A<> 0 Си void main() { int a,S; S=0; scanf(“%d",&a); while(a <>0) {
  • 62. Паскаль var a, S: integer; begin S:=0; readln(a); While (a<>0) do Begin if (a mod 3 = 0) then S:=S+a; Бейсик DIM A,S AS INTEGER S=0 INPUT A WHILE A<> 0 IF A MOD 3 = 0 THEN S = S+A ENDIF Си void main() { int a,S; S=0; scanf(“%d",&a); while(a <>0) { if (a % 3 == 0) S+=a;
  • 63. Паскаль var a, S: integer; begin S:=0; readln(a); While (a<>0) do Begin if (a mod 3 = 0) then S:=S+a; Readln(a) End; Бейсик DIM A,S AS INTEGER S=0 INPUT A WHILE A<> 0 IF A MOD 3 = 0 THEN S = S+A ENDIF INPUT A WEND Си void main() { int a,S; S=0; scanf(“%d",&a); while(a <>0) { if (a % 3 == 0) S+=a; scanf(“%d",&a); }
  • 64. Паскаль var a, S: integer; begin S:=0; readln(a); While (a<>0) do Begin if (a mod 3 = 0) then S:=S+a; Readln(a) End; writeln(S) end. Бейсик DIM A,S AS INTEGER S=0 INPUT A WHILE A<> 0 IF A MOD 3 = 0 THEN S = S+A ENDIF INPUT A WEND PRINT S END Си void main() { int a,S; S=0; scanf(“%d",&a); while(a <>0) { if (a % 3 == 0) S+=a; scanf(“%d",&a); } printf(“%d”,k); }