Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Задачи 21 к 8-й неделе.docx
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
126.5 Кб
Скачать

Системы счисления

Перевести число (n+№группы)*(1+(n+№группы)),(n+№группы) в двоичную, восьмеричную и шестнадцатеричную системы счисления. Результаты записать в виде формулы

  1. Эквивалентны ли два фрагмента программ с условным оператором? в каких переменных записывается результат максимального значения переменной? Изобразите алгоритмы приведенных фрагментов программ.

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. Поскольку любой из операторов <оператор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.

  1. Нарисуйте алгоритм, соответствующий программе в задаче №2

  1. Что делает приведенная программа? Найдите и исправьте ошибки в программе.

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.

  1. Исходя из программы, определения машинного «эпсилон» с помощью оператора 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.

  1. Программа : Подсчитать, сколько среди введенных 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.