Дана программа, решающая некоторую задачу. В программе имеются синтаксические ошибки и пропуски. Необходимо исправить ошибки и з
аполнить пропуски. Предложить систему тестов для проверки работоспособности программы. Найти max{min(a, b), min(c, d)}.
var a, b, c, d, m, m1, m2: real; begin write('Введите четыре числа:') readln(a, b, c, d); if a if c if m writeln('Максимальный из минимальных элементов: ', m2:7:2) end.
Все написано правильно, пропуски только в операторе if. if (a < b) then (m1 := a) else (m1 := b); if (c < d) then (m2 := c) else (m2 := d); if (m1 > m2) them (m := m1) else (m := m2); writeln ('Максимальный из минимальных элементов: ', m:7:2); end. Для тестирования можно взять разные варианты: 1) a = 2, b = -2, c = 10, d = -3 (m1 = b = -2, m2 = d = -3, m = m1 = -2) 2) a = 6, b = 6, c = 3, d = 4 (m1 = b = 6, m2 = c = 3, m = m1 = 6) Почему m1 = b, а не = а? Потому что в программе строгое неравенство. Если a < b, то m1 = a, если же a >= b, то m1 = b. Хотя для нас это все равно, получаем в итоге одно и тоже число. 3) a = -7, b = -5, c = 8, d = 8 (m1 = a = -7, m2 = d = 8, m = m2 = 8) 4) a = 0, b = 0, c = 0, d = 0 (m1 = b = 0, m2 = d = 0, m = m2 = 0)
Program n1; const n=10; var a : array[1..n] of integer; a1: array[1..n] of integer; s,s1,i: integer; begin s := 0; s1:=0; for i := 1 to n do begin write('введите рост ', i,' ученика: ' ); readln(a[i]); s := s + a[i]; write('введите вес ',i,' ученика: '); readln(a1[i]); s1:=s1+a1[i]; end; writeln('средний рост: ',s/n); writeln('средний вес: ',s1/n); end.
Program chik; var y,x:real; begin x:=-11; while x<10 do begin x:=x+1; if(x<>0)then y:=1/(x*x) else y:=-1; if(y<>-1)then writeln(y) else writeln('при x=0 нет решений'); end; end.