Суммативная работа по информатике за 2 полугодие 8 класс 1. Определите вид алгоритма. Напишите правильный алгоритм перехода улицы.
Возвращаясь со школы, Алия подошла к перекрестку, регулируемому светофором. В уме она быстро составила алгоритм перехода улицы:
Остановиться;
Посмотреть на сигнал светофора;
Если (горит зеленый), то {дойти до середины; остановиться}
иначе {стоять;}
Посмотреть на сигнал светофора;
Если (горит зеленый), то {идти до конца;}
иначе {стоять;} /2
2. Исправьте этот алгоритм.
Проснувшись в понедельник утром, Артем почувствовал недомогание. Недолго думая, он составил для себя следующий алгоритм:
Измерить температуру;
Если (температура выше 37), то {вызвать врача;}
Пойти в школу; /1
3. Школьник в текстовом редакторе напечатал слово «телеграмма». Курсор находится после третьей буквы этого слова. Какое слово будет напечатано после выполнения следующего алгоритма:
Нажать клавишу «Стрелка вправо» 4 раза,
Если (курсор находится перед буквой «м»),
то (нажать на клавишу «Delete» 2 раза),
Если (курсор находится после буквы «а»),
то (заменить букву «а» на «ф»). /2
4. Напишите программу вычисления длины окружности и площади круга по величине радиуса круга. /3
5. Выполни тесты
1. Укажите свойства алгоритма.
a) Дискретность, результативность, понятность, точность, массовость, определенность.
b) Используемость, понятность, конечность, решаемость, выполняемость.
c) Определённость, конечность, массовость, точность, результативность, понятность.
d) Дискретность, решаемость, выполняемость, многопользовательность, конечность. /1
2. Укажите какая задача решается по данному алгоритму
алг Задача
вещ Х
нач ввод Х
если Х<0
то вывод «отрицательное число»
иначе вывод «положительное число»
кв
кон
a) Определить, является ли введенное число трехзначным.
b) Определить, является ли введенное число четным.
c) Определить, является ли введенное число положительным или отрицательным.
d) Определить, является ли введенное число двухзначным.
e) Определить, является ли введенное число нечетным. /1
3. Определите результат выполнения нижеследующего псевдокода, если n=10.
алг Сумма квадратов (арг цел n, рез цел S)
дано|n > 0
надо|S = 1*1+2*2+3*3+…+n*n
нач цел i
ввод n;S:=0
нц для i от 1 до n
S:=S+i*i
кц
вывод “S =”, S
кон
a) 127
b) 529
c) 225
d) 385
e) 789 /1
6. Дайте определение что такое псевдокод? /1
7. Построить трассировочную таблицу для алгоритма «Вычисление суммы чисел от 1 до 4»
Оператор Условие N S Примечание
/5
= - 127, максимальное число = + 127
2) Число 1607, ячейка двухбайтовая, один бит под знак, следовательно, под число отводится 15 бит, в двоичном представлении 1607(10) = 11001000111(2), дополняем до 16 бит, старший бит - знаковый - нулевой, так как число положительное
= 0000011001000111(2) - это двоичное представление в двухбайтовой ячейке, чтобы получить шестнадцатиричное представление, разбиваем число справа - налево по 4 бита
0000 0110 0100 0111 и записываем в шестнадцатиричном виде
0111(2) = 7(16) 0100(2) = 4(16) 0110(2) =6(16) 0000(2) = 0(16)
1607(16) = 0647(16) или без старшего не значащего нуля = 647(16)
3) для получения дополнительного кода числа, находят обратное число, или инверсию числа,
для этого каждый бит числа изменяют на противоположный, 1 на 0, 0 на 1
105(10) = 1101001(2) - это и есть дополнительный код числа - 105, т.е. дополнительным кодом
числа (- а) будет число а.
Найдем дополнительный код в однобайтовой ячейке числа 105(10) = 01101001(2),
а) находим обратное 01101001(2) ->(обратное) ->10010110(2)
б) дополнительный код-> обратный код + 1 ->(дополнительный)->10010111(2), а это число - 105
потому, что отрицательные числа представляются в дополнительном коде.
Если для числа - 105 найти дополнительный код, то получим число 105
10010111(2)->(дополнительный)->01101000+1->01101001 = 69(16) = 16*6+9 = 96+9 = 105
#include <stdio.h>
#include <windows.h>
int main()
{
SetConsoleCP(1251);
SetConsoleOutputCP(1251);
int const n=3;
int mas[n][n];
int sum1, sum2;
bool magik;
for (int i=0; i<n; i++)
for (int j=0; j<n; j++)
{
printf("mas[%d][%d] = ", i+1, j+1);
scanf("%d",&mas[ i ][ j ]);
}
printf("\nВведенная матрица:\n");
for (int i=0; i<n; i++)
{
for (int j=0; j<n; j++)
{
printf("%d ",mas[ i ][ j ]);
}
printf("\n");
}
sum1=0;
sum2=0;
for (int i = 0; i<n; i++)
{
sum1 += mas[ i ][ i ];
sum2 += mas[ i ][ n-1-i ];
}
printf("Сумма главной диагонали = %d\n", sum1);
printf("Сумма побочной диагонали = %d\n", sum2);
magik = true;
for (int i=0; i<n; i++)
{
if (sum1==sum2)
{
sum2=0;
for (int j=0; j<n; j++)
{
sum2 += mas[ i ][ j ];
}
} else { magik=false; break; }
}
if (magik==true)
{
for (int i=0; i<n; i++)
{
if (sum1==sum2)
{
sum2=0;
for (int j=0; j<n; j++)
{
sum2 += mas[ j ][ i ];
}
}
else { magik=false; break; }
}
}
if (magik==true)
printf("\nМатрица является магическим квадратом\n");
else
printf("\nМатрица не является магическим квадратом\n");
system("pause");
return 0;
}