
- •Системы счисления
- •Эквивалентны ли два фрагмента программ с условным оператором? в каких переменных записывается результат максимального значения переменной? Изобразите алгоритмы приведенных фрагментов программ.
- •Нарисуйте алгоритм, соответствующий программе в задаче №2
- •Что делает приведенная программа? Найдите и исправьте ошибки в программе.
- •Заполнение и вывод двумерного массива
- •21. Что делает программа? Приведите блок-схему программы.
Системы счисления
Перевести число (n+№группы)*(1+(n+№группы)),(n+№группы) в двоичную, восьмеричную и шестнадцатеричную системы счисления. Результаты записать в виде формулы
Эквивалентны ли два фрагмента программ с условным оператором? в каких переменных записывается результат максимального значения переменной? Изобразите алгоритмы приведенных фрагментов программ.
var х, у, max: Integer; begin ....... if x > max then у := max else y := x; |
var х, у, max: Integer; begin .......
if x > max then max := x; Y := x;
|
Поскольку любой из операторов <оператор1> и <оператор2> условного оператора IF <условие> THEN <оператор1> ELSE <оператор2> может быть любого типа, в том числе и условным, а в то же время не каждый из «вложенных» условных операторов может иметь часть ELSE <оператор2>, то возникает неоднозначность трактовки условий. К какому THEN относится каждое ELSE ? Ответьте на вопросы в тексте программы.
Program Hex;
{Что делает программа? }
var
n : Integer; {Вводимое число}
ch : Char; {Результат}
begin
Write ( ',n = ' ) ;
ReadLn(n); { Вводим число }
{Что проверяет следующий условный оператор?}
if (n >= 0) and (n <= 15) then
begin {Да, принадлежит диапазону}
if n < 10 then
ch := chr(ord('0') + n)
else
ch := chr(ord('A') + n- 10);
WriteLn('n = ',ch)
end
else {He принадлежит диапазону}
WriteLn('Ошибка')
end.
Нарисуйте алгоритм, соответствующий программе в задаче №2
Что делает приведенная программа? Найдите и исправьте ошибки в программе.
Program Summ_of_Integer;
var
i, n, s : Integer;
begin
Write('N = ');
ReadLn(n); . {Вводим N}
s := 0.0;
for i : = 1 downto n do
s : = s + i;
writeln('Сумма = ',s)
end.
Исходя из программы, определения машинного «эпсилон» с помощью оператора WHILE, напишите такую же программу с использованием оператора цикла REPEAT... UNTIL. Приведите алгоритмы решения данной задачи с помощью обоих операторов цикла.
Program EpsilpnDetect;
{Программа вычисляет и выводит на экран значение "машинного эпсилон" - такого минимального, не равного нулю вещественного число, которое после прибавления его к 1.0 еще дает результат, отличный от 1.0. }
var
epsilon: Real;
begin
epsilon := 1;
while epsilon/2 + 1 > 1 do
epsilon := epsilon/2
WriteLn ('Машинное эпсилон = ',epsilon)
end.
Программа : Подсчитать, сколько среди введенных 10 вещественных чисел отрицательных и положительных чисел.
-
program chisla;
var
a: array[1..10] of real;
i: integer;
p: integer;
t: integer;
begin
i:=1;
writeln('Vvedite elementy');
while i<=10 do
begin
readln(a[i]);
i:=i+1;
end;
t:=0;
p
:=0;
i:=1; { }
while i<=10 do
begin
if a[i]>0 then
begin
p:=p+1;
i:=i+1;
end;
if a[i]<0 then
begin
t:=t+1;
end;
i:=i+1;
end;
writeln('Polozhitelnyh chisel: ',p);
writeln('Otricatelnyh chisel: ',t);
readln;
end.