1. Заголовок темы должен быть информативным. В противном случае тема удаляется ... 2. Все тексты программ должны помещаться в теги [code=pas] ... [/code], либо быть опубликованы на нашем PasteBin в режиме вечного хранения. 3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали! 4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора). 5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM! 6. Одна тема - один вопрос (задача) 7.Проверяйте программы перед тем, как разместить их на форуме!!! 8.Спрашивайте и отвечайте четко и по существу!!!
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"
Матрица очень большая... Под TP ни одна структура данных не может быть больше 64Кб. А тут - полгигабайта...
ДАльше... Паскаль всегда требовал и будет требовать, чтобы в качестве переменной цикла использовалась ЛОКАЛЬНАЯ переменная, а не переданная в качестве Var-параметра.
Ну, и третье: KriN, исправь первый пост... Теги добавь, чтобы программа была читаемой.
посмотрел и вот исправил эти ошибки если можно сказать так вот что получилось
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 -
--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
maksimla, это не будет компилироваться. Почему - я уже написал выше, читай внимательнее...
ну я вот поспешил немножко сейчас исправил и у меня программа запускается и работает пару строчек а как не знаем самого задания так я дальше не полезу только исправлю что найду тут .
Добавлено через 7 мин. я даже не знаю что о такой программе и сказать внимательнее посмотрел ужас просто
--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
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;
Неправда... Повторяю еще раз: ни один компилятор Паскаля такое НЕ КОМПИЛИРУЕТ, и не будет. Так что - делай выводы... И исправляй дальше.
это так у меня компилируется и я выполняю тут пошаговые действия смотрю постоянно в процедуре доходит до
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.
подскажите что процедура должна делать? то я чего то не разобрался а так у меня запускается программа
--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.
запустил на fpc 2.2.2 выдало ошибку error: Illegal parameter: -Opentium3
--------------------
Учусь первый год на программиста в колледже. Учусь на втором курсе в школе программирования при научно-исследовательском институте математики и информатики.