![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Пользователь
Регистрация: 13.02.2012
Сообщений: 37
|
![]()
Почему я не могу ввести нецелое число, например, 4,5 ???
ВОТ КОД ЗАДАЧИ (нужно определить суммарный объем перевозок грузов за день.) ::: program Project2; {$APPTYPE CONSOLE} type KAMAZ=array[1..5] of real; var i:integer; S:real; V:KAMAZ; begin { TODO -oUser -cConsole Main : Insert code here } S:=0; for i:=1 to 5 do begin Writeln('vvedite obiem perevozok ',i,'-go kamaza'); readln(v[i]); S:=S+v[i]; end; writeln(' S=',S:5:1); readln; end. И кстати, я не понимаю, что нужно вводить в скобках массива [1..5] что будет 5 в данном случае, это диапазон чего? Вот, например, при смене счетчика с 5 на 10 программа будет просить ввести объемы перевозок для 10 грузовиков, это понятно. А вот диапазон массива...Что он определяет? Благодарствую. ![]() |
![]() |
![]() |
![]() |
#2 | ||
Старожил
Регистрация: 12.11.2010
Сообщений: 8,568
|
![]() Цитата:
Цитата:
|
||
![]() |
![]() |
![]() |
#3 |
Пользователь
Регистрация: 13.02.2012
Сообщений: 37
|
![]()
"Возможно, проблема в том, что ваш компьютер в качестве десятичного разделителя использует не запятую, а точку. Попробуйте вводить не 4,5, а 4.5" - Да так оно и есть
![]() НО: "То, что записывается в скобках, это диапазон индексов элементов массива (в вашем случае индексы изменяются от 1 до 5)." Это как? В скобках постоянно указывать такой же диапазон как потом в цикле? Вот я слегка поменял программу (нужно вналчале самому ввести количество грузовиков) и независимо от того сколько я ввиду ДИАПАЗОН В МАССИВЕ [1..5] я так и оставлял и программа всё равно работает. Так что же он паказывает? (я так и не понял=(( ) program Project2; {$APPTYPE CONSOLE} type KAMAZ=array[1..5] of real; var i,n:integer; S:real; V:KAMAZ; begin { TODO -oUser -cConsole Main : Insert code here } writeln('vvedite kolichestvo gruzovikov'); readln(n); S:=0; for i:=1 to n do begin Writeln('vvedite obiem perevozok ',i,'-go kamaza'); readln(v[i]); S:=S+v[i]; end; writeln(' S=',S:5:1); readln; end. |
![]() |
![]() |
![]() |
#4 |
Участник клуба
Регистрация: 30.01.2011
Сообщений: 1,578
|
![]()
если диапазон масива [1..5] меньше чем ваше n... то при попытке ввода элемента 5 + 1 вам должно выдасть ошибку... для подобных случаев используют динамические масивы... но на начальной стадии обучения чаще всего попросту ставят изначально большую размерность... при попытке ввода 6 элемента ошибка будет ввиду того, что не выделена память под элементы...
пишу код не только за печеньки
|
![]() |
![]() |
![]() |
#5 |
Участник клуба
Регистрация: 03.12.2009
Сообщений: 1,013
|
![]()
VIK_aka_TOR
Речь идет (как я понял) о делфи. Тут разрабочтки решили учесть и если происходит выход за границы диапазона массива, то соответсвующей ошибки показано не будет. А элемент попросту запишется в соответствующую ячейку, таким образом диапазон увеличится, а отсюда следует что выделяется большая память под массив. (такая же система и в С,С++). А вот например в паскале такое уже не пройдет. Последний раз редактировалось Базиля; 09.03.2012 в 16:07. |
![]() |
![]() |
![]() |
#6 |
Пользователь
Регистрация: 13.02.2012
Сообщений: 37
|
![]()
Оооо.. Спасибо!
Понял. ![]() |
![]() |
![]() |
![]() |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
Легкий вопрос о idHTTP и XML | kettanaito | Работа с сетью в Delphi | 3 | 01.12.2011 01:42 |
Легкий вопрос | pinkiller | Общие вопросы C/C++ | 3 | 03.11.2011 13:23 |
Вопрос в php мониторенге легкий. | makar3000 | PHP | 3 | 05.03.2011 22:35 |
Ответе бысто на легкий вопрос... | t13sto | Паскаль, Turbo Pascal, PascalABC.NET | 2 | 28.05.2008 21:39 |
очень легкий вопрос | ♠STO♠ | Общие вопросы Delphi | 5 | 15.07.2007 00:14 |