|
Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Массивы. Ввод параметра для строк и столбцов с клавиатуры,а заполнение матрицы random |
|
|
Разное - [решено] Массивы. Ввод параметра для строк и столбцов с клавиатуры,а заполнение матрицы random
|
Новый участник Сообщения: 26 |
Профиль | Отправить PM | Цитировать
Здравствуйте!
Нужно сделать так, чтобы параметры для строк и столбцов вводились с клавиатуры, а сама матрица заполнялась случайным образом. При чем реализация ввода матрицы должна быть в одной процедуре. А вывод матрицы на экран в другой процедуре. Делаю пока что для ввода матрицы. Но не совсем получается. Ошибка: "Error 20: Variable identifier expected". И указывает на переменную a в процедуре. Так понимаю, что и для переменной b будет та же ситуация. Думаю, что const нужно убрать, потому что это все таки константы, а мне нужно переменное значение. Но тогда выходит ошибка в строке type mass = array [1..a,1..b] of integer; Потому что a и b не определены. Подскажите, пожалуйста, что нужно сделать. Как правильно написать? Буду ОЧЕНЬ благодарна, если напишите пример Вот, что получилось у меня. const a=10; b=10; type mass = array [1..a,1..b] of integer; var matr : mass; procedure zapolnenie_matricij; begin var i,j:integer; writeln('Введите параметр для строк: '); readln(a); writeln('Введите параметр для столбцов: '); readln(b); randomize; for i:=1 to a do begin for j:=1 to b do begin matr[i,j]=random(15); end; end; end; Если просто переменные a и b записываю как: var a : integer; b : integer; то появляется другая ошибка "Error 133: Cannot evaluate this expression". |
|
Отправлено: 17:27, 17-01-2012 |
Ветеран Сообщения: 1384
|
Профиль | Отправить PM | Цитировать Цитата lenaustkz84:
Судя по синтаксису вы пишете на Pascal или Delphi. И по моему ни там ни там то, что вы пытаетесь сделать, сделать не получится. P.S. В C# это реализуется точно: |
|
------- Отправлено: 18:01, 17-01-2012 | #2 |
Для отключения данного рекламного блока вам необходимо зарегистрироваться или войти с учетной записью социальной сети. Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля. |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Цитата Tonny_Bennet:
Еще мне не совсем понятно, что Вы хотели показать этим кодом. Объясните, пожалуйста. |
|
Отправлено: 18:12, 17-01-2012 | #3 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать |
Отправлено: 18:19, 17-01-2012 | #4 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать ferget, эту ошибку
Цитата ferget:
|
||
Отправлено: 19:40, 17-01-2012 | #5 |
Разный Сообщения: 1294
|
Профиль | Отправить PM | Цитировать type Matrix = array of array of integer; function CreateMatrix(m,n: integer): Matrix; begin SetLength(Result,m); for var i:=0 to m-1 do SetLength(Result[i],n); end; procedure FillMatrByRandom(matr: Matrix); begin for var i:=0 to matr.Length-1 do for var j:=0 to matr[0].Length-1 do matr[i][j] := Random(100); end; var matr: Matrix; begin var a :integer; var b :integer; writeln('Введите параметр для строк: '); readln(a); writeln('Введите параметр для столбцов: '); readln(b); matr := CreateMatrix(a,b); FillMatrByRandom(matr); end. |
Отправлено: 20:15, 17-01-2012 | #6 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать ferget, здорово!
Еще бы теперь в коде разобраться |
Отправлено: 22:03, 17-01-2012 | #7 |
Будем жить, Маэстро... Сообщения: 6694
|
Профиль | Сайт | Отправить PM | Цитировать lenaustkz84, Вы же учитесь, значит должны разбираться, иначе глупо учить программирование.
|
------- Отправлено: 23:40, 17-01-2012 | #8 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Цитата Drongo:
|
|
Отправлено: 06:21, 18-01-2012 | #9 |
Новый участник Сообщения: 26
|
Профиль | Отправить PM | Цитировать Вот я сделала. Правда не так виртуозно, как у ferget Но работает
Как бы теперь сделать, чтобы матрица заполнялась не только положительными, но и отрицательными числами? Что нужно изменить? program zadanie_30; uses crt; const a = 10; {dlya zadaniya strok matricij} b = 10; {dlya zadaniya stolbcov matricij} type mass = array [1..a, 1..b] of integer; var matr : mass; {dlya obsheij matricij} a1,b1 : integer; {dlya opredeleniya parametrov matricij} {*********************************************************************} procedure vvod_matricij; {procedyra dlya vivoda matricij na ekran} var i,j:integer; begin writeln('Vvedite a: '); readln(a1); writeln('Vvedite b: '); readln(b1); randomize; for i:=1 to a do begin for j:=1 to b do begin matr[i,j]:=random(10); end; end; end; {*********************************************************************} procedure matrica_na_ekrane; var i,j : integer; begin for i:=1 to a1 do begin for j:=1 to b1 do begin write(matr[i,j]:5); end; writeln;writeln; end; end; {*********************************************************************} BEGIN clrscr; vvod_matricij; matrica_na_ekrane; readln; END. |
Последний раз редактировалось lenaustkz84, 18-01-2012 в 07:06. Отправлено: 06:38, 18-01-2012 | #10 |
|
Участник сейчас на форуме | Участник вне форума | Автор темы | Сообщение прикреплено |
| |||||
Название темы | Автор | Информация о форуме | Ответов | Последнее сообщение | |
CMD/BAT - [решено] Ввод с клавиатуры значения в переменную | river123 | Скриптовые языки администрирования Windows | 8 | 28-05-2018 00:17 | |
C/C++ - [решено] Нахождение обратной матрицы методом Гаусса и рассширенной матрицы | D.Y. | Программирование и базы данных | 64 | 06-05-2011 22:59 | |
C/C++ - Строки, массивы строк... | ManHack | Программирование и базы данных | 6 | 29-04-2011 06:31 | |
CMD/BAT - [решено] Необходимо помощъ в написании батника для удаления столбцов из текстового файла. | francke | Скриптовые языки администрирования Windows | 7 | 02-04-2010 15:32 | |
Ввод строки с клавиатуры | DJ@XON | Программирование в *nix | 1 | 06-07-2009 22:25 |
|