Паскаль вставляет пользовательский ввод в массив

Я пытаюсь стать лучше в функциональном программировании. Для начала я планирую опробовать несколько языков, таких как Pascal, Scheme, ML и т. Д. Сначала я начал с Pascal. Я пытаюсь вставить пользовательский ввод в массив целых чисел в паскале, а затем получить их в обратном порядке.

  1 программа ReverseList;  2 3 var 4 i: целое число;  5 k: целое число;  6 a: массив [1..100] целых чисел;  7 начало 8 я: = 0;  9 repeat 10 Writeln («Введите число»);  11 readln (k);  12, если k> -1, то 13 i: = i + 1;  14 a [i]: = k;  15 до (k  

В прошлом я в основном был Java-разработчиком, поэтому я привык использовать все доступные списки. Также в идеале мне было интересно, могу ли я создать список, в котором я могу перебирать список на основе количества элементов в этом списке.

Было бы здорово, если бы кто-нибудь мог указать мне направление хороших руководств по функциональному программированию, а также синтаксис на вышеупомянутых языках программирования.


2

В вашей программе есть несколько проблем:

  • Массив не инициализирован.
  • Проверка ввода не выполняется, оба значения i = 0 и i> 100 приводят к недопустимому индексу массива.
  • Индекс массива и значения такие же, это правильно?
  • Вы пишете только первые 10 чисел (но используете другой индекс, который наверняка будет вне диапазона).
  • Результат не обратный.

Есть также несколько руководств по паскалю.

Кстати, Паскаль не является функциональным язык. Так что, если вы действительно хотите изучить функциональный язык, вам лучше попробовать другой (например, Lisp, Ml или, возможно, F #).

Поделиться
Улучшить этот ответ
ответил 25 сен 2011 в 18:21
  • Я действительно обновил раздел кода вопроса после вашего комментария. Теперь я распечатал список и работаю над реверсом. Большое спасибо. — добавить точки с запятой, 25 сен., 19:00
  • Gamecat: он сказал, что изучает функциональное программирование, а не изучает функциональный язык 🙂 — Марко ван де Ворт, 28 сен., 08:25
добавить комментарий |

У вашей программы есть несколько проблем:

  • Массив не инициализирован.
  • Проверка ввода не выполняется, и i = 0, и i> 100 приводят к недопустимому индексу массива.
  • Индекс массива и значение совпадают, равно это правильно?
  • Вы пишете только первые 10 чисел (но вы используете другой индекс, который наверняка будет вне диапазона).
  • Результат не обратный.

Есть также несколько учебных пособий по паскалю.

Кстати, Паскаль не функциональный язык. Так что, если вы действительно хотите изучить функциональный язык, вам лучше попробовать другой (например, Lisp, Ml или, возможно, F #).


Это была хорошая практика, и мне удалось понять решение для этого. Я уверен, что есть более эффективные способы, и это не похоже на то, что я использую функциональные возможности функционального программирования. Но если кто-то хочет предложить лучшее решение, сделайте это,

  {author: Null-Hypothesis} программа ReverseList; var i: Integer;  {целое число для сохранения длины массива} k: Integer;  {значение, вводимое пользователем} a: массив [1..100] целых чисел;  {массив для хранения пользовательского ввода} begin i: = 0;  repeat {итерация до тех пор, пока пользовательский ввод не станет отрицательным или количество вводов не превысит размер массива} Writeln ('Введите число или введите отрицательное значение для выхода из программы.');  readln (k);  if (k> -1) и (i  

Удачного кодирования, переход на следующий язык …

Оцените статью
Botgadget.ru
Добавить комментарий