Имя пользователя:
Пароль:  
Помощь | Регистрация | Забыли пароль?  | Правила  

Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Массивы. Ввод параметра для строк и столбцов с клавиатуры,а заполнение матрицы random

Ответить
Настройки темы
Разное - [решено] Массивы. Ввод параметра для строк и столбцов с клавиатуры,а заполнение матрицы random

Аватара для lenaustkz84

Новый участник


Сообщения: 26
Благодарности: 0

Профиль | Отправить PM | Цитировать


Изменения
Автор: lenaustkz84
Дата: 17-01-2012
Здравствуйте!

Нужно сделать так, чтобы параметры для строк и столбцов вводились с клавиатуры,
а сама матрица заполнялась случайным образом. При чем реализация ввода матрицы
должна быть в одной процедуре. А вывод матрицы на экран в другой процедуре.

Делаю пока что для ввода матрицы. Но не совсем получается.
Ошибка: "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 как переменные в процедуре, то появляется ошибка "Error 113: Error in statement".

Если просто переменные a и b записываю как:

var a : integer;
b : integer;

то появляется другая ошибка "Error 133: Cannot evaluate this expression".

Отправлено: 17:27, 17-01-2012

 

Аватара для ferget

Разный


Сообщения: 1294
Благодарности: 359

Профиль | Отправить PM | Цитировать


Цитата lenaustkz84:
Как бы теперь сделать, чтобы матрица заполнялась не только положительными,
но и отрицательными числами? »
например от -10 до 10


Код: Выделить весь код
matr[i,j]:=random(20)-10;

Отправлено: 07:08, 18-01-2012 | #11



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

Если же вы забыли свой пароль на форуме, то воспользуйтесь данной ссылкой для восстановления пароля.


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


Цитата ferget:
SetLength(Result,m); »
Если честно то думал, что паскаль этого не умеет делать ....

Цитата lenaustkz84:
Еще мне не совсем понятно, что Вы хотели показать этим кодом.
Объясните, пожалуйста. »
Вот оказалось, что паскаль умеет работать с динамическими массивами. И когда вы пишете на паскале то видите всю "кухню" этого (да и впрочем любого) действия. Я считаю данный факт основополагающим в развитии навыков программирования и алгоритмизации в целом. Языки которые используют API позволяют сократить многие манипуляции. Это удобно когда вы понимаете и знаете как это работает. Это удобно в больших проектах. Код из 30 строк может быть заменён на код из 3 строк.

Я считаю, что языки использующие API могут быть не удобны лишь в том случае, когда для работы программы с кодом 3 КБ требуется набор библиотек в 300 МБ ... и некоторые проблемы кросплатформенности...

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 09:17, 18-01-2012 | #12


Новый участник


Сообщения: 40
Благодарности: 19

Профиль | Отправить PM | Цитировать


Цитата Tonny_Bennet:
Если честно то думал, что паскаль этого не умеет делать »
А Паскаль этого и не умеет
Это умеет Дельфи, начиная с 5 версии.
На паскале надо делать как то так (массив из 100):
Код: Выделить весь код
type 
  arr: array[1,1] of Integer;

var
  a : arr;
  pa:^a;

begin
  getmem(pa,sizeof(integer)*100);
  pa^[80]:=100;
  и т.д. и т.п.

  freemem(pa,sizeof(integer)*100);
end.
Это сообщение посчитали полезным следующие участники:

Отправлено: 10:22, 18-01-2012 | #13


Аватара для Tonny_Bennet

Ветеран


Сообщения: 1384
Благодарности: 178

Профиль | Отправить PM | Цитировать


AlexVol,

Цитата Tonny_Bennet:
Судя по синтаксису вы пишете на Pascal или Delphi. »
Цитата lenaustkz84:
Да, Tonny_Bennet, это Pascal. »
Цитата lenaustkz84:
Вот я сделала. Правда не так виртуозно, как у ferget Но работает »
в коде видно что массив не динамический...

-------
Сообщение оказалось полезным? Кнопка Полезное сообщение располагается чуть ниже.


Отправлено: 09:03, 19-01-2012 | #14



Компьютерный форум OSzone.net » Программирование, базы данных и автоматизация действий » Программирование и базы данных » Разное - [решено] Массивы. Ввод параметра для строк и столбцов с клавиатуры,а заполнение матрицы random

Участник сейчас на форуме Участник сейчас на форуме Участник вне форума Участник вне форума Автор темы Автор темы Шапка темы Сообщение прикреплено

Похожие темы
Название темы Автор Информация о форуме Ответов Последнее сообщение
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




 
Переход