22. На¬пи¬ши¬те про¬грам¬му для ре¬ше¬ния сле¬ду¬ю-щей за¬да¬чи. Ка¬ме¬ра на¬блю¬де¬ния ре¬ги¬стри¬ру¬ет в ав-то¬ма¬ти¬че¬ском ре¬жи¬ме ско¬рость про¬ез¬жа¬ю¬щих мимо неё ав¬то¬мо¬би¬лей, округ¬ляя зна¬че¬ния ско¬ро¬сти до целых чисел. Не¬об¬хо¬ди¬мо опре¬де¬лить сред¬нюю за-ре¬ги¬стри¬ро¬ван¬ную ско¬рость всех ав¬то¬мо¬би¬лей. Про¬грам¬ма по¬лу¬ча¬ет на вход число про¬ехав¬ших ав¬то¬мо¬би¬лей N (1 =< N =< 30), затем ука¬зы¬ва¬ют¬ся их ско¬ро¬сти. Зна¬че¬ние ско¬ро¬сти не может быть мень¬ше 1 и боль¬ше 300.Про¬грам¬ма долж¬на вы¬ве-сти сред¬нюю ско¬рость.
При¬мер ра¬бо¬ты про¬грам¬мы:
Вход¬ные дан-ные Вы¬ход¬ные дан-ные
4
74
69
63
96 75,5
ответ: г. char
Объяснение: Pos возвращает индекс первого вхождения подстроки в строке, Number не является функцией вообще, Ord возвращает код символа.
Задание 2ответ: конкатенация.
Задание 3ответ: 3
Объяснение:
Ord('H') = 72
Ord('E') = 69
72 - 69 = 3
Задание 4ответ: в
Объяснение:
В кодировке символы идут в порядке алфавита, то есть числа имеют закономерность возрастания:
Ord('A') = 65
Ord('B') = 66
..
Ord('X') = 88
...
Отсюда можем сделать вывод, что все условия, имеющие условие:
('A' > 'B') = (65 > 66)
('C' < 'B') = (67 < 66)
('X' > 'Y') = (88 > 89) отпадают.
Остаётся лишь вариант ('A' < 'B') and ('X' < 'Y')
Потому что Вы каждый раз, когда матрица симметрична (но не до конца, а на данной итерации), выводите "YES", хотя не знаете, будет ли она симметрична далее.
Как решить?1. Заведите переменную типа bool:
bool isSymmetrically = true;
2. В теле условия if (a[i][j] != a[j][i]) замените вывод на следующее:
isSymmetrically = false; // матрица не симметрична, можно заканчивать цикл (с
В блоке else:
isSymmetrically = true; // на данном этапе симметрия присутствует
2.1. После вложенного цикла произведите проверку на то, симметрична ли матрица, чтобы в случае несимметричности не продолжать проверку, а сразу сделать вывод:
if (isSymmetrically == false)
{ break; }
3. После всех циклов вы произвдите следующую проверку:
if (isSymmetrically = true) // если матрица симметрична
{ // вывод YES }
else
{ // вывод NO }
Исправленный код#include <iostream>using namespace std;int main(){ int n = 0; int a[100][100]; bool isSymmetrically = true; cin >> n; for (int i = 0; i < n; i++) { for (int j = 0; j < n; j++) { cin >> a[i][j]; } cout << endl; } for(int i = 0; i < n - 1; i++) { for(int j = i + 1; j < n; j++) { if(a[i][j] != a[j][i]) { isSymmetrically = false; break; } else { isSymmetrically = true; } } if (isSymmetrically == false) { break; } } if (isSymmetrically == true) { cout << "YES" << endl; } else { cout << "NO" << endl; } return 0;}