IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения.
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

 
 Ответить  Открыть новую тему 
> Не соответствие типов, Файлы, Массивы
сообщение
Сообщение #1


Новичок
*

Группа: Пользователи
Сообщений: 10
Пол: Мужской

Репутация: -  0  +


Написать программу на языке Pascal, в которой выполнит следующие действия:
1. Описать переменную индексируемого типа(двухмерный масив).
2. Написать процедуру для заполнения данного массива значениями в соответствии с вариантом.
3. Создать новою переменную индексируемого типа (одномерный массив) и процедуру получеными в соответствии с вариантами задания;
4. Написать процедуру для преобразования элементов двумерного массива таким образом, что бы в главной программе имеет доступ к его первоначальному и конечному значению;


8x8
Значения одномерного массива состоят из суммы четных значений элементов столбцов двухмерного массива

Уменьшить значение всех елементов массива на среднее арифметическое значений элементов его побочной диагонали

Уловее замудреное мальохо(((

uses crt;
const
n = 8;
m = 8;
type
typearray = array[1..n, 1..m] of real;
var
arr: typearray;
arr3: typearray;
i, j,s,k: integer;
arr1: array[1..n] of real;

procedure zapolnenieI;
begin
for i := 1 to n do
for j := 1 to m do
arr[i, j] := (random(15) - 5);
for i := 1 to n do
begin
for j := 1 to m do
write(arr[i, j]:8:2);
writeln;
end;
end;

procedure zapolnenieII;
begin
for i := 1 to n do
arr1[i] := 1;
for i := 1 to n do
for j := 1 to m do
if arr[i, j] mod 2 = 0 then arr1[i] := arr1[i] + arr[i, j];
for i := 1 to n do write(arr1[i]10.gif5, ' ');
writeln;
end;
k:=0;
procedure SrednAriF;
begin
s:=0;
for i := 1 to n do
for j := 1 to m do
for i:=1 to n do
s:=s+x[i,n-i+1];
k:=k+1;
end;
s:= s/k;
procedure change;
begin

for i := 1 to n do
for j := 1 to m do
for i:=1 to n do

arr3[i, j] := arr3[i, j] - s;
for i := 1 to n do
begin
for j := 1 to m do
write(arr3[i, j]:8:2);
writeln;
end;
end;

begin
clrscr;
randomize;
filing;
arr3 := arr;
zapolnenieII;
change;
end.

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Вопрос в чем? Почему на 32-ой строке ошибка? Потому что массив - вещественный, к нему нельзя применять целочисленные операции mod и div. Эти операции применяются только к целочисленным типам.

Цитата
Значения одномерного массива состоят из суммы четных значений элементов столбцов двухмерного массива
указывает на то, что массив должен быть целочисленным. Вещественное число быть четным или нечетным просто не может.
 К началу страницы 
+ Ответить 

 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 





- Текстовая версия 27.05.2024 13:19
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name