Найти сумму положительных (SP) и количество отрицательных (PO) элементов массива - Free Pascal
Формулировка задачи:
Помогите пожалуйста с составлением программы.
Условие: Найти сумму положительных (SP) и количество отрицательных (PO) элементов массива Z(7) и минимальный элемент массива b(2,3) и вычислить [x][/i]:
x(i-тое)=((sqrt(SP))/(PO+a*c))+b(min-в индексе)*Sqr(k)+Z(i-ое);
a=2,5e-3;
c=175;
K=8;
Z(i-тое)=-2,3,12,-7,-18,27,-10;
B(2,3)=Матрица 0.3 1.5 -6.1
7.2 10.3 0.6
Добавлено через 5 минут
Вот так написал можете пожалуйста найти ошибку
Program LB5U; Const a=2.5e-3; c=175; K=8; Z:Array[1..7] of real=(-2,3,12,-7,18,27,-10); VAR f:file; B:Array[1..2 , 1..3] of real; x:Array[1..7] of real; i,j,t,y:integer; min,SP,PO:real; begin assign (f,'z:\2Д63\Акимов А\Akimov14.txt'); REWRITE(F); for i:=1 to 2 do for j:=1 to 3 do readln(B[I,J]); min:=B[1,1]; for i:=1 to 2 do for j:=1 to 3 do begin if B[i,j]<min then min:=B[i,j]; end; writeln('Минимальный элемент= ', min); PO:=0; for t:=1 to 7 do if Z[t]<0 then PO:=PO+1; writeln('Количество отрицательных элементов массива= ', PO); for y:=1 to 7 do readln((Z[y])); SP:=0; for y:=1 to 7 do if Z[y]>0 then SP:=SP+Z[y]; for i:=1 to 7 do x[i]:=(((sqrt(SP))/(PO+a*c))+min*sqr(K)+Z[i]); WRITE(f,'X[i]= ',x[i]:3:3); close(f); end.
Решение задачи: «Найти сумму положительных (SP) и количество отрицательных (PO) элементов массива»
textual
Листинг программы
program LB5U; const a=2.5e-3; c=175; K=8; Z:Array[1..7] of integer=(-2,3,12,-7,18,27,-10); B:array[1..2,1..3] of real=((0.3,1.5,-6.1), (7.2,1.3,0.6)); var f:text; X:Array[1..7] of real; i,j,SP,PO:integer; min:real; begin assign (f,'Akimov14.txt'); //файл в папке с програмой rewrite(f); writeln(f,'Massiv Z'); SP:=0; PO:=0; for i:=1 to 7 do begin write(f,Z[i]:4); if Z[i]>=0 then inc(SP,Z[i]) else inc(PO); end; writeln(f); writeln(f,'SP=',SP,' PO=',PO); writeln(f,'Massiv B'); for i:=1 to 2 do begin for j:=1 to 3 do begin write(f,B[i,j]:5:1); if i+j=2 then min:=B[1,1] else if B[i,j]<min then min:=B[i,j]; end; writeln(f); end; writeln(f,'min=',min:0:1); writeln(f,'Massiv X'); for i:=1 to 7 do begin X[i]:=sqrt(SP)/(PO+a*c)+min*sqr(K)+Z[i]; write(f,X[i]:10:3); end; writeln('Resultaty zapisany v fail Akimov14.txt'); close(f); readln end.
Объяснение кода листинга программы
В этом коде используется язык программирования Free Pascal, который является одним из диалектических вариантов языка Паскаль. Программа выполняет следующие действия:
- Создает массив целых чисел Z, содержит семь элементов, принимает значения от -2 до 27.
- Создает двумерный массив B, содержит три элемента в каждом из двух подмассивов, значения массива B содержат числа с плавающей точкой.
- Создает пустой текстовый файл с именем
Akimov14.txt
и открывает его для записи. - Записывает в файл массив Z.
- Устанавливает начальные значения переменных SP и PO равными нулю.
- Используя цикл, проходит по всем элементам массива Z.
- Записывает значение каждого элемента массива Z в файл.
- Если значение элемента массива Z больше или равно нулю, увеличивает значение переменной SP на это значение.
- Если значение элемента массива Z меньше нуля, увеличивает значение переменной PO на единицу.
- Выводит на экран значения переменных SP и PO.
- Записывает в файл массив B.
- Используя два вложенных цикла, проходит по всем элементам массива B.
- Записывает значение каждого элемента массива B в файл.
- Если индексы текущего элемента массива B равны 1 и 1, обновляет значение переменной min.
- Если значение текущего элемента массива B меньше значения переменной min, обновляет значение переменной min.
- Выводит на экран значение переменной min.
- Создает массив X, содержит семь элементов.
- Используя цикл, проходит по всем элементам массива X.
- Вычисляет значение каждого элемента массива X по формуле sqrt(SP)/(PO+ac)+minsqr(K)+Z[i].
- Записывает значение каждого элемента массива X в файл.
- Выводит на экран сообщение о том, что результаты сохранены в файле
Akimov14.txt
. - Закрывает файл.
- Ждет ввода пользователя.
ИИ поможет Вам:
- решить любую задачу по программированию
- объяснить код
- расставить комментарии в коде
- и т.д