|
|
Регистрация Восстановить пароль |
Повторная активизация e-mail |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
|
Опции темы | Поиск в этой теме |
21.02.2017, 14:30 | #1 |
Пользователь
Регистрация: 12.01.2017
Сообщений: 19
|
Исправьте ошибку пожалуйста в function Pascal
Не понимаю что компилятору не нравится в предпоследней строке
Код program p2; var Arr_X, Arr_Y:array [1..3] of real; S: real; function Square(determ:real): real; begin //вычисление по формуле S := 0.5*abs(determ); Square := S; end; function determ(var Arr_X, Arr_Y: array of real):real; begin determ:=(Arr_X[1]-Arr_X[3])*(Arr_Y[2]-Arr_Y[3])-(Arr_X[2]-Arr_X[3])*(Arr_Y[1]-Arr_Y[3]); end; begin for var i := 1 to 3 do begin writeln('Введите координаты x(', i , ')'); readln(Arr_X[i]); writeln('Введите координаты y(', i , ')'); readln(Arr_Y[i]); end; writeln('Площадь вашего 3-угольника = ', Square(determ(Arr_X, Arr_Y)) ); end. Последний раз редактировалось users1; 21.02.2017 в 14:41. |
21.02.2017, 14:32 | #2 |
Участник клуба
Регистрация: 14.05.2016
Сообщений: 1,793
|
Вроде бы "кол-во открывающихся скобок должно равняться кол-ву закрывающихся"...
Считай у себя в последней строчке. |
21.02.2017, 14:56 | #3 |
Пользователь
Регистрация: 12.01.2017
Сообщений: 19
|
ura_111
это не то |
21.02.2017, 15:16 | #4 | |
Старожил
Регистрация: 20.04.2008
Сообщений: 5,526
|
Цитата:
чтобы проанализировать сложную строчку(много вложенных функций), а некорректная строка именно такова, надо(можно) превратить ее в несколько более простых строчек с использованием дополнительных переменных. Код:
программа — запись алгоритма на языке понятном транслятору
Последний раз редактировалось evg_m; 21.02.2017 в 15:22. |
|
21.02.2017, 16:23 | #5 | |
Старожил
Регистрация: 09.01.2008
Сообщений: 26,229
|
во-первых, обязательно нужно указывать, какой именно у Вас Паскаль.
судя по строчке: Цитата:
(в стандартном Паскале так переменные определять нельзя, а в этом монстре - можно). во-вторых, Вам же ясно и чётко, по русски выдаётся причина ошибки компиляции: Program1.pas(29) : Неправильный тип параметров подпрограммы потому что массивы Arr_X, Arr_Y имеют тип array [1..3] of real а в процедуре переменные описаны как array of real (кстати, в другом Паскале такой подход мог сработать - см. "Открытые массивы" = Open Arrays, но не в Pascal ABC.NET!!!) да и не нужен здесь открытый тип. у Вас массивы одного типа, вот его и надо использовать, предварительно описав: Код:
|
|
Похожие темы | ||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
исправьте ошибку пожалуйста | AdelinaMango | Общие вопросы C/C++ | 1 | 10.04.2014 20:47 |
Исправьте ошибку | Rammstalex | Паскаль, Turbo Pascal, PascalABC.NET | 3 | 11.12.2013 20:49 |
Исправьте ошибку!! | Krivaia_soplea | Паскаль, Turbo Pascal, PascalABC.NET | 5 | 07.11.2012 20:15 |
Исправьте ошибку | kipapsih | Помощь студентам | 0 | 07.01.2011 20:19 |
Исправьте ошибку пожалуйста | Алиса_1515 | Помощь студентам | 1 | 03.12.2009 19:12 |