решить тест по информатике.
Во Укажите правильное описание одномерного массива целых чисел.
Варианты ответов
а)Var mas: array [1..7] of integer; i: integer;
б)Var A: array [1..9 of integer]; i: integer;
в)Var Massiv: array [1…10] of integer; i: integer;
г)Var rew: array [1..1] of integer; i: integer;
д)Var a: array (1..10) of real; i: integer;
Во Дан массив, заполненный следующим образом:
For i:=1 to 5 do a[i]):=2*i-1;
Чему будет равен четвертый элемент этого массива a[4]=?
Во Что производит следующий фрагмент программы?
For i:=1 to 8 do writeln (a[i] );
Варианты ответов
а)Ввод элементов массива по формуле;
б)Ввод элементов массива с клавиатуры;
в)Вывод элементов массива в столбец;
г)Вывод элементов массива в строку.
Во Что выполняет фрагмент программы?
For i:=1 to 10 do readln(A[i]);
Варианты ответов
а)заполнение массива с клавиатуры
б)заполнение массива с датчика случайных чисел
в)выводит элементы массива на экран
г)обнуляет массив
Во Что выполняет фрагмент программы?
For i:=1 to 10 do A[i]:=random(1000)-500;
Варианты ответов
а)заполнение массива с клавиатуры
б)заполнение массива с датчика случайных чисел
в)выводит элементы массива на экран
г)обнуляет массив
Во Что выполняет фрагмент программы?
For i:=1 to 10 do A[i]:=0;
Варианты ответов
а)заполнение массива с клавиатуры
б)заполнение массива с датчика случайных чисел
в)выводит элементы массива на экран
г)обнуляет массив
Во Что производит следующий фрагмент программы?
For i:=1 to 8 do writeln (a[i]);
Варианты ответов
а)Ввод элементов массива по формуле
б)Ввод элементов массива с клавиатуры
в)Вывод элементов массива в столбец
г)Вывод элементов массива в строку
Во Может ли массив одновременно содержать целые и вещественные значения
Варианты ответов
а)Да
б)Нет
Во Дан массив:
const b: array [1..7] of integer = (11, -2, 5, 13, 48, 0, -9 );
Чему будет равен пятый элемент массива b[5]=?
Во Что производит следующий фрагмент программы?
For i:=1 to 7 do write (a[i]:4);
Варианты ответов
а)Ввод элементов массива по формуле
б)Вывод элементов массива в столбец
в)Ввод элементов массива с клавиатуры
г)Вывод элементов массива в строку
Var X : Array [1..20, 1..20] Of integer; M, N : Integer; //M - столбцы, N - строки i, j : Integer; //i, j - параметры циклов p: integer; Procedure vvod (var X: Array [1..20, 1..20] Of byte); begin For i := 1 To N Do For j := 1 To M Do Begin Write ('X[', i, ',', j, '] = '); ReadLn(X[i,j]); End; end; Procedure print (X: Array [1..20, 1..20] Of byte); begin for i :=1 to N do begin for j :=1 to M do write ( X [ i , j ]:4); writeln ; end; end; Begin WriteLn ('Ввод элементов.'); Write ('Число строк: '); ReadLn (N); Write ('Число столбцов: '); ReadLn (M); WriteLn ('Введите поочередно элементы матрицы:'); vvod(X); print(x); ReadLn; End.
Посмотрим конкретно на вашем примере:)
1+5+(321-54*[321-321]+21)
Мы идём слева-направо, откидывая все символы, не являющиеся скобками, поскольку они нас не интересуют (как это было указано в вашем условии, почему я это и уточнял)
Затем, натыкаясь на открывающую скобку, добавляем её в стек.
В нашем стеке: "("
Идём дальше, находим открывающую квадратную скобку, кладём в стек
В нашем стеке: "(["
Дальше видим закрывающую квадратную скобку, т.к. у нас последняя добавленная скобка - [, значит, она закрываёт её.
В нашем стеке: "("
Аналогично с круглой скобкой, в итоге в нашем стеке не остаётся ничего, строка корректна:)
В остальных случаях:
Если программа наткнётся на закрывающую скобку, для которой не найдётся открытой в стеке, причём той же самой (для квадратной - квадратная, для круглой - круглая, для фигурной - фигурная) выходит, выражение некорректно, что мы и выводим в качестве ответа. Само собой, если после выполнения программы останутся незакрывшиеся скобки, значит, это выражение тоже является некорректным.
Я не мастер объяснять, но надеюсь, что мой разбор вам:) Исходный код вложен в ответ.