массивы

Вопросы программирования на Free Pascal, использования компилятора и утилит.

Модератор: Модераторы

массивы

Сообщение Nick245 » 23.02.2017 00:37:41

Есть 2 массива, один string другой integer.Почему надо вводить вначале string а потом integer, а не наоборот ?
Код: Выделить всё
type

arr1=array[1..5] of string;
arr2=array[1..5] of integer;

var
  a:arr1;
  b:arr2;
Begin
 
  For i:=1 to 5 do 
    begin
      writeln('write your  name and grade ');
      readln(a[i],b[i])
      end;
Nick245
новенький
 
Сообщения: 10
Зарегистрирован: 22.01.2017 00:31:07

Re: массивы

Сообщение ElectroGuard » 23.02.2017 06:54:29

потому что у нас стиль письма такой - слева направо: a[i],b[i], были бы мы арабами - вводилось бы наоборот :) шутка.
ElectroGuard
новенький
 
Сообщения: 31
Зарегистрирован: 03.06.2016 12:10:22

Re: массивы

Сообщение Снег Север » 23.02.2017 08:46:14

Потому, что в запросе "write your name and grade" просят сначала ввести имя, а потом оценку, а не наоборот.
Аватара пользователя
Снег Север
энтузиаст
 
Сообщения: 930
Зарегистрирован: 27.11.2007 16:14:47

Re: массивы

Сообщение Nick245 » 23.02.2017 16:32:09

Снег Север писал(а):Потому, что в запросе "write your name and grade" просят сначала ввести имя, а потом оценку, а не наоборот

Издеваешься, да ?
Nick245
новенький
 
Сообщения: 10
Зарегистрирован: 22.01.2017 00:31:07

Re: массивы

Сообщение Deimos » 23.02.2017 18:39:44

Nick245 писал(а):Издеваешься, да ?

Код: Выделить всё
readln(b[i],a[i])


в чем смысл спича? Вот тебе ввод сначала стринг, потом инт.

P.S. В листинге ошибка, насколько я вижу )) Компилятор подскажет )))
Deimos
постоялец
 
Сообщения: 130
Зарегистрирован: 17.01.2010 00:31:30

Re: массивы

Сообщение SSerge » 24.02.2017 06:05:21

Deimos писал(а):Вот тебе ввод сначала стринг, потом инт.


А введёт ли?
В строковую переменную, ЕМНИП, должно попасть всё содержимое ввода до символа перевода строки, а что в такой форме попадет в переменную integer? Содержимое следующей введенной строки? :D
В си, спецификация "%s" на вводе принимает порцию информации, ограниченную любыми непечат(ающимися) символами, что делает методику непригодной для ввода строк, содержащих пробелы
SSerge
энтузиаст
 
Сообщения: 784
Зарегистрирован: 12.01.2012 05:34:14
Откуда: Барнаул

Re: массивы

Сообщение Лекс Айрин » 24.02.2017 13:13:22

SSerge писал(а):А введёт ли?
В строковую переменную, ЕМНИП, должно попасть всё содержимое ввода до символа перевода строки, а что в такой форме попадет в переменную integer?

тут просто идут последовательные команды ввода, разделенные, при наборе, переводом каретки (клавишей "Enter")... так что действительно
SSerge писал(а):Содержимое следующей введенной строки? :D


В паскале пробел, по умолчанию, печатаемый символ. То, что его не видно совсем другая проблема.
SSerge писал(а):В си, спецификация "%s" на вводе принимает порцию информации, ограниченную любыми непечат(ающимися) символами, что делает методику непригодной для ввода строк, содержащих пробелы


Не используйте спецификацию %s, если такое поведение не нужно :D :D :D
Аватара пользователя
Лекс Айрин
долгожитель
 
Сообщения: 3817
Зарегистрирован: 19.02.2013 16:54:51


Вернуться в Free Pascal Compiler

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 2

Рейтинг@Mail.ru