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

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

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

 
 Ответить  Открыть новую тему 
> Процедура, Подскажите,что не так
сообщение
Сообщение #1





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

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


program lab9;
type mat=array[1..10000,1..10000] of real;
var
i,j,n:integer;
k:real;
km:mat;
procedure changediag( x:mat;
var i,j,n:integer;
var k:real);
begin
For i := 1 To n do
For j := 1 To n do
k := 0;
For i := 1 To n - 1 do
For j := 1 To n - 1 do
k := x[i, i + 1] ;
x[i, i + 1] := x[j + 1, j] ;
x[j + 1, j] := k ;
end;
begin
For i := 1 To n do
For j := 1 To n do
write('n=');
readln(n);
writeln('x[',i,j:2,']=');
For i := 1 To n do
For j := 1 To n do
changediag(km,n,k,i,j);
writeln(' x',km[i,j]:2 :1);
end.




Пишет:"тип фактического параметра-переменной real отличается от типа формального параметра integer"

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


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

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


У меня на TP7 вообще ругается на тип, говорит Structure too large. Слишком большой диапазон как я понял. Какой компилятор используешь?

Плюс Invalid For control variable..

Сообщение отредактировано: Unconnected -


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Гость






Цитата
Слишком большой диапазон как я понял
Матрица очень большая... Под TP ни одна структура данных не может быть больше 64Кб. А тут - полгигабайта...

ДАльше... Паскаль всегда требовал и будет требовать, чтобы в качестве переменной цикла использовалась ЛОКАЛЬНАЯ переменная, а не переданная в качестве Var-параметра.

Ну, и третье: KriN, исправь первый пост... Теги добавь, чтобы программа была читаемой.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

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


Только вот интересно, как он получил ошибку несовпадения типов, если дальше второй строки не компилируется)


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Гость






Любой 32-битный компилятор выдает тебе ВСЕ ошибки, а не по одной, как Турбо-Паскаль. И ограничения в 64К у этих компиляторов нет.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6





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

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


Цитата(Unconnected @ 3.03.2009 21:52) *

Какой компилятор используешь?



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


mea culpa
*****

Группа: Пользователи
Сообщений: 1 372
Пол: Мужской
Реальное имя: Николай

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


А ошибку только одну выдаёт или ещё которые volvo назвал?


--------------------
"Знаешь, стыдно - когда не видно, что услышал всё, что слушал.."
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #8


Знаток
****

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

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


посмотрел и вот исправил эти ошибки если можно сказать так вот что получилось
 program lab9;
type mat=array[1..100,1..100] of real;
var
i,j,n:integer;
k:real;
km:mat;
procedure changediag( x:mat;
var i,j,n:integer;
var k:real); {у тебя в процедуре тип real стоит 5 а как задаешь то он стоит 3 из за этого ошибка}
begin
{For i := 1 To n do
For j := 1 To n do} {зачем это тебе это ненужно и так k = 0 будет это ведь не массив}
k := 0;
For i := 1 To n - 1 do
For j := 1 To n - 1 do
k := x[i, i + 1] ;
x[i, i + 1] := x[j + 1, j] ;
x[j + 1, j] := k ;
end;
begin
{For i := 1 To n do
For j := 1 To n do } {зачем тебе это если всеравно невыполняется это только потом задаешь n}
write('n=');
readln(n);
writeln('x[',i,j:2,']=');
For i := 1 To n do
For j := 1 To n do
changediag(km,n,{k}i,j,k);{вот поставил его последним и ошибки нету}
writeln(' x',km[i,j]
{1});{некак непойму зачем тебе цыфра тут или ее совсем ненадо или поставь перед ней запятую или двоеточие}
end.



вот сейчас у меня запускается вводим число и потом ошибка выбивает в процедере на k := 0; когда несколько раз проходит

Сообщение отредактировано: maksimla -


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #9


Гость






maksimla, это не будет компилироваться. Почему - я уже написал выше, читай внимательнее...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #10


Знаток
****

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

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


Цитата(volvo @ 4.03.2009 8:28) *

maksimla, это не будет компилироваться. Почему - я уже написал выше, читай внимательнее...

ну я вот поспешил немножко сейчас исправил и у меня программа запускается и работает пару строчек lol.gif
а как не знаем самого задания так я дальше не полезу только исправлю что найду тут .



Добавлено через 7 мин.
я даже не знаю что о такой программе и сказать внимательнее посмотрел ужас просто


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #11


Гость






ЭТО у тебя запускается?
Цитата
procedure changediag( x:mat;
var i,j,n:integer;
var k:real); {у тебя в процедуре тип real стоит 5 а как задаешь то он стоит 3 из за этого ошибка}
begin
{For i := 1 To n do
For j := 1 To n do} {зачем это тебе это ненужно и так k = 0 будет это ведь не массив}
k := 0;
For i := 1 To n - 1 do
For j := 1 To n - 1 do
k := x[i, i + 1] ;
x[i, i + 1] := x[j + 1, j] ;
x[j + 1, j] := k ;
end;
Неправда... Повторяю еще раз: ни один компилятор Паскаля такое НЕ КОМПИЛИРУЕТ, и не будет. Так что - делай выводы... И исправляй дальше.
 К началу страницы 
+ Ответить 
сообщение
Сообщение #12


Знаток
****

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

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


это так у меня компилируется и я выполняю тут пошаговые действия смотрю постоянно
в процедуре доходит до
k := x[i, i + 1] ;
пишет ошибка и все

вот как думал я так сейчас ему написал только незнаю что процедура должна делать и там все когда считается выдает ошибку
вот

program lab9;
type mat=array[1..100,1..100] of real;
var
i,j,n:integer;
k:real;
km:mat;
procedure changediag( x:mat;
var i,j,n:integer;
var k:real);
begin
k := 0;
{я тут вот застрял незнаю что ты тут хочешь делать }
For i := 1 To n - 1 do
For j := 1 To n - 1 do
k := x[i, i + 1] ;
x[i, i + 1] := x[j + 1, j] ;
x[j + 1, j] := k ;
end;
begin
write('n=');
readln(n);
{мне кажется что ты тут хотел в массив числа ввести и посмотреть на числа }
For i := 1 To n do
For j := 1 To n do
readln(km[i,j]);
For i := 1 To n do
For j := 1 To n do
writeln('x[',i,j:2,']=',km[i,j]);
{если будишь по шаговую операцию выполнять то увидишь все числа }
For i := 1 To n do
For j := 1 To n do
changediag(km,i,j,n,k); {так более правильно будет наверное если все буквы по порядку стоят задаются }
{тут забыл ты поставить циклы чтобы потом все значения увидить}
For i := 1 To n do
For j := 1 To n do
writeln(' x',km[i,j]);
readln;
end.


подскажите что процедура должна делать?
то я чего то не разобрался
а так у меня запускается программа


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #13


Знаток
****

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

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


запустил на fpc 2.2.2 выдало ошибку error: Illegal parameter: -Opentium3


--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #14





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

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


Программа должна переставлять местами строчки,прилегающие к главной диагонали в кв.матрице
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





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