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

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

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

> Не соответствие типов, Файлы, Массивы
Student91
сообщение 19.04.2011 15:08
Сообщение #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 
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 1)
volvo
сообщение 19.04.2011 16:02
Сообщение #2


Гость






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

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

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

 



- Текстовая версия 9.08.2025 19:41
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"