Дан вектор x={x1,..., xn}. Разработайте и представьте в виде блок-схемы икода программы на языке Си алгоритм, изменяющийвсоответствии с вариантом задания значения некоторых его компонентов.Составьте отчет овыполнении лабораторной работы, в который включите:a.название и цель работы;b.индивидуальное задание;c.текст программы;d.результат решения задачи. Код к задаче
#include int main(int argc, char *argv[]){inti;floatx[10], max, min;/*Вводэлементовмассива*/for(i= 0; i max) max= x[i]; /*Поиск минимального элемента*/min= x[0];for(i= 1; i< 10; i++)if(x[i] < min) min= x[i];x[0] = ( max+min)/ 2;/*Вывод элементов массива*/for(i= 0; i< 10; i++ )printf("\nx[%d]=%f",i+1,x[i]);return 0;}
1) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИМЕНЬШЕЕ значение переменной x, для которого это возможно, равно С) 35
Здесь количество цифр равно двум, а их произведение равно 15. Число 15 представимо в виде произведения двух однозначных чисел только в виде 3х5 или 5х3. Следовательно, наименьшим числом могло быть только 35.
2) При исполнении этой программы на экран было сначала выведено число 2, затем число 15. НАИБОЛЬШЕЕ значение переменной x, для которого это возможно, равно B) 53
Решение аналогично предыдущему, но выбирается наибольшее число, т.е. 53.
3) НАИМЕНЬШЕЕ значение переменной b, которое может быть выведено на экран этой программой, равно Е) 0
Минимальное значение произведения n однозначных чисел будет равно нулю, если среди этих чисел встретить хотя бы один ноль.
4) При исполнении этой программы на экран было сначала выведено число 2. НАИБОЛЬШЕЕ значение переменной b, которое может быть выведено на экран, равно А) 81
Максимальное произведение двух однозначных чисел равно 9х9=81.
5) НАИМЕНЬШЕЕ значение переменной a, которое может быть выведено на экран этой программой, равно D) 1
Понятно, что чисел с количеством знаков, меньшим единицы, быть не может.
n=100;
type
V=array[1..n] of integer;
procedure IsGreater(var p:V; m,T:integer; var r:boolean);
var
i:integer;
begin
i:=1; r:=True;
while (i<=n) and r do
begin r:=(p[i]>T); Inc(i) end
end;
procedure Init(var p:V; m:integer);
{ инициализация и вывод массива }
var
i:integer;
begin
for i := 1 to m do
begin p[i]:=Random(51)-25; Write(p[i]:4) end;
Writeln
end;
procedure Invert(var p:V; m:integer);
{ инвертирование элементов и вывод массива }
var
i:integer;
begin
Writeln('Текущие значения элементов массива');
for i := 1 to m do
begin p[i]:=-p[i]; Write(p[i]:4) end;
Writeln
end;
var
a,b:V;
i,m1,m2,t:integer;
res:boolean;
begin
Randomize;
Write('Введите размеры массивов a и b: '); Read(m1,m2);
Writeln('Введите пороговое значение T: '); Read(t);
Writeln('Элементы массива A');
Init(a,m1);
IsGreater(a,m1,t,res);
if res then Invert(a,m1)
else Writeln('Условие не выполнено');
Writeln('Элементы массива B');
Init(b,m2);
IsGreater(b,m2,t,res);
if res then Invert(b,m2)
else Writeln('Условие не выполнено')
end.
Тестовое решение:
Введите размеры массивов a и b: 15 9
Введите пороговое значение T:
-24
Элементы массива A
23 -9 -23 -25 -25 -4 -16 -2 -3 6 -8 -19 19 21 12
Условие не выполнено
Элементы массива B
-6 -9 -3 -23 14 4 -11 24 11
Текущие значения элементов массива
6 9 3 23 -14 -4 11 -24 -11