|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
|
Опции темы | Поиск в этой теме |
07.02.2016, 16:21 | #1 |
Пользователь
Регистрация: 07.02.2016
Сообщений: 11
|
Паскаль АВС. массивы, проблема с типом
Здравствуйте! Помогите пожалуйста, написала программу, но мне выдает ошибку ( Нельзя преобразовать тип word к array [1..10] of word). Не понимаю что нужно изменить
вот код: Код:
Последний раз редактировалось Аватар; 07.02.2016 в 16:28. |
07.02.2016, 16:33 | #2 | |
Старожил
Регистрация: 17.11.2010
Сообщений: 19,042
|
Цитата:
Если бы архитекторы строили здания так, как программисты пишут программы, то первый залетевший дятел разрушил бы цивилизацию
Последний раз редактировалось Аватар; 07.02.2016 в 16:37. |
|
07.02.2016, 16:39 | #3 |
Пользователь
Регистрация: 07.02.2016
Сообщений: 11
|
нет, ошибку выдает в основной прогр, где я функцию приравниваю к "m". На счет:Vvod(z,a,b)-я исправила на правильное имя процедуры, но прогр не работает
|
07.02.2016, 18:31 | #4 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
Аксёнова Таня, у Вас смешались в одну кучу разные переменные.
вот глобальная переменная a:word - она для чего? ввод типа задачи, судя по: Код:
следующей строчкой идёт Код:
массив: Цитата:
так нельзя. ну и ещё, не вижу, а где собственно ввод массива? (где массив заполняется значениями?) ну и совет - не экономьте на буквах - вместо функции S напишите MinMassiv вместо S1 - SumMegduPologitel и т.д. |
|
07.02.2016, 20:27 | #5 |
Пользователь
Регистрация: 07.02.2016
Сообщений: 11
|
как мне в функцию в основной прогр отправить массив
если я записываю так: m:=S(massiv); , то у меня в самой функции идет сбой, массиву ведь нужно придать тип, допустим тип word, но тогда мне выдают ошибку,что для а -Нет индексного свойства по умолчанию, так как оно типа word (который я присвоила этой переменной в самом начале) каким типом лучше мне обозначить "a" ? |
07.02.2016, 23:22 | #6 |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
если я правильно понял ваш вопрос, то
Код:
1) сначала набросать блок-схему алгоритма (что в какой процедуре должно делаться, что где вводиться, что где заполняться 2) разобраться, чем формальные параметрые отличаются от фактических (чтобы понять что a в процедуре это совсем не то же самое, что a - в главной программе. 3) исправить код согласно моим замечаниям выше (и согласно вашей блок-схеме) - это дать переменным и процедурам/функция корректные имена, выкинуть a, например, не забыть заполнить массив значениями (она сами по себе в массиве не заведуются, их туда надо поместить) и т.д. по поводу логике. в процедуре Vvod Вы заставляете вводить число a, типа меню выбора. А зачем? Где Вы потом это значение используете? Вы же всё равно вычисляете все параметры массива, вне зависимости от того, что выбрал пользователь! |
08.02.2016, 23:43 | #7 | |
Пользователь
Регистрация: 07.02.2016
Сообщений: 11
|
...
Цитата:
Код:
________ Код нужно оформлять по правилам: тегом [CODE]..[/СODE] (это кнопочка на панели форматирования с решёточкой #) Не забывайте об этом! Модератор. Последний раз редактировалось Serge_Bliznykov; 09.02.2016 в 07:42. |
|
09.02.2016, 07:57 | #8 | |||
Старожил
Регистрация: 09.01.2008
Сообщений: 26,238
|
уже лучше. Хотя ошибки, на мой взгляд, связаны с тем, что Вы сами путаете свои же переменные!
Вы объявили 4(ЧЕТЫРЕ) разных массива (четыре переменные типа массив): Цитата:
Дальше. Поймите, что брать (обращаться к переменной) можно только после того, как что-то туда положил (иницилизировал значение переменной). Вы заполняете массив a случайными значениями. Допустим (хотя сразу минус - почему это не вынесено в отдельную процедуру?! Чем этот код заслужил такой чести, что вынесен в главный блок?!!). Но заполняете массив A, а потом ищете минимальный, сумму и прочее в каком массиве? Цитата:
Это неверно! Где заполнили, там и нужно искать. Да и одного массива достаточно в данной задаче, четыре не нужны. ещё Вы не понимаете, что означает запись Цитата:
ну и ещё совет. Новички часто внутри процедур и функции СЛУЧАЙНО используют глобальные переменные (так, как это Вы сделали)! чтобы увидеть эти ошибки, рекомендую Вам такую структуру программы (не только данной, а вообще, всех ваших программ) Код:
|
|||
09.02.2016, 12:53 | #9 |
Пользователь
Регистрация: 07.02.2016
Сообщений: 11
|
скажите, а я могу два раза писать раздел описания констант. типов, var ? первый раз для подпрограмм,а второй раз для переменных, которые используются в основной прогр.
обязательно использовать константу? можно работать без нее? Последний раз редактировалось Аксёнова Таня; 09.02.2016 в 13:23. |
09.02.2016, 13:34 | #10 |
Пользователь
Регистрация: 07.02.2016
Сообщений: 11
|
"Почему то это всё вы ищите в массиве o!
Это неверно! Где заполнили, там и нужно искать. Да и одного массива достаточно в данной задаче, четыре не нужны." что значит "заполнила?" о-это у меня переменная массива, который я отправляю в функции, там уже эта переменная заменяется местными переменными и они там обрабатываются. |
|
Опции темы | Поиск в этой теме |
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
паскаль авс | LiliyaD | Помощь студентам | 1 | 07.06.2014 21:10 |
2 программки (массивы) на паскале АВС | Кутяшка | Фриланс | 7 | 29.05.2014 12:04 |
Двумерные массивы. Написать программу на языке Паскаль АВС. | Helen1 | Помощь студентам | 9 | 13.12.2012 12:25 |
Как можно в Паскаль АВС (Паскаль-Турбо) вставлять в результаты печати программы графики, таблицы, схемы, набранные формулы, выраже | IZOPGRAM | Паскаль, Turbo Pascal, PascalABC.NET | 0 | 11.06.2012 10:54 |
из С++ в Паскаль АВС | Aidar9119 | Паскаль, Turbo Pascal, PascalABC.NET | 1 | 04.01.2011 22:30 |