Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Закрытая тема
Ваша тема закрыта, почему это могло произойти? Возможно,
Нет наработок или кода, если нужно готовое решение - создайте тему в разделе Фриланс и оплатите работу.
Название темы включает слова - "Помогите", "Нужна помощь", "Срочно", "Пожалуйста".
Название темы слишком короткое или не отражает сути вашего вопроса.
Тема исчерпала себя, помните, один вопрос - одна тема
Прочитайте правила и заново правильно создайте тему.
 
Опции темы Поиск в этой теме
Старый 01.06.2009, 03:01   #1
Arcueid1691
Пользователь
 
Аватар для Arcueid1691
 
Регистрация: 31.05.2009
Сообщений: 97
По умолчанию ошибки

Что значит ошибка: операнды имеют неприводимые типы?
спят подружки вредные безмятежным сном,
Снятся мышкам хлебные крошки под столом, Буратинам - досточки, кошкам - караси,
Всем собакам - косточки, программистам - Си (с)
Arcueid1691 вне форума
Старый 01.06.2009, 03:02   #2
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Это где такое? А как она на английском звучит?
Хорошо бы посмотреть на кусок кода, где она возникает.

Вообще, это значит, что нельзя привести один тип к другому (например, строку к числу).
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 01.06.2009, 03:04   #3
Arcueid1691
Пользователь
 
Аватар для Arcueid1691
 
Регистрация: 31.05.2009
Сообщений: 97
По умолчанию

это я предприняла попытку перевести из С в Паскаль...
Код:
uses crt;
var
i : integer;
m1: integer;
a: array[1..10] of integer;  // ìàññèâ èç 10 öåëûõ ÷èñåë

begin
clrscr;
for i:=1 to 10 do
 a[i] := i;
readln;
for i:=1 to 10 do begin
 IF (m1=0 or a[m1]<a[i]) then m1:=i;
  end;
 writeln(a[m1]);
  for i:=1 to 10 do begin
  if ((i!=m1) and (m2=0 or a[m2]<a[i])) then m2:=i;
  end;
  writeln(a[m2]);
end.
З.Ы.: с использаванием вашего кусочка
спят подружки вредные безмятежным сном,
Снятся мышкам хлебные крошки под столом, Буратинам - досточки, кошкам - караси,
Всем собакам - косточки, программистам - Си (с)
Arcueid1691 вне форума
Старый 01.06.2009, 03:07   #4
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Только в следующий раз указывайте само задание.
Я-то его еще помню, а вот другие заглянувшие не в курсе.

Ошибки в синтаксисе. В паскале каждое условие нужно заключать в отдельные скобки. И знак неравенства тоже не так пишется.
И еще переменные m1 и m2 не проинициализированы.
Код:
uses crt;
var
i : integer;
m1,m2: integer;
a: array[1..10] of integer; 

begin
clrscr;
m1 := -1;
m2 := -1;
for i:=1 to 10 do
 a[i] := i;

for i:=1 to 10 do begin
 IF (m1=0) or (a[m1]<a[i]) then m1:=i;
  end;
 writeln(a[m1]);
  for i:=1 to 10 do begin
  if ((i<>m1) and ((m2=0) or (a[m2]<a[i]))) then m2:=i;
  end;
  writeln(a[m2]);
readln;
end.
Задание:
Цитата:
найти 2 максимума в заданном массиве.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 01.06.2009, 03:12   #5
Arcueid1691
Пользователь
 
Аватар для Arcueid1691
 
Регистрация: 31.05.2009
Сообщений: 97
По умолчанию

Цитата:
Сообщение от Sazary Посмотреть сообщение
Только в следующий раз указывайте само задание.
Я-то его еще помню, а вот другие заглянувшие не в курсе.

Задание:
учту в следующий раз, но надеюсь что его не будет. Все таки хочется самостоятельно писать.
спят подружки вредные безмятежным сном,
Снятся мышкам хлебные крошки под столом, Буратинам - досточки, кошкам - караси,
Всем собакам - косточки, программистам - Си (с)
Arcueid1691 вне форума
Старый 01.06.2009, 03:16   #6
Arcueid1691
Пользователь
 
Аватар для Arcueid1691
 
Регистрация: 31.05.2009
Сообщений: 97
По умолчанию

ошибка: выход за границы диапазона изменения индекса 1...10 (строка 15)
спят подружки вредные безмятежным сном,
Снятся мышкам хлебные крошки под столом, Буратинам - досточки, кошкам - караси,
Всем собакам - косточки, программистам - Си (с)
Arcueid1691 вне форума
Старый 01.06.2009, 03:18   #7
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Arcueid1691
ошибка: выход за границы диапазона изменения индекса 1...10 (строка 15)
Да, не заметил..
Либо инициализируйте m1 и m2 нулями, либо в условиях замените нули на -1.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума
Старый 01.06.2009, 03:25   #8
Arcueid1691
Пользователь
 
Аватар для Arcueid1691
 
Регистрация: 31.05.2009
Сообщений: 97
По умолчанию

заменила в условиях, программа не запрашивает ввод массива, выдает 10 и 9. в чем причина?
спят подружки вредные безмятежным сном,
Снятся мышкам хлебные крошки под столом, Буратинам - досточки, кошкам - караси,
Всем собакам - косточки, программистам - Си (с)
Arcueid1691 вне форума
Старый 01.06.2009, 03:27   #9
Arcueid1691
Пользователь
 
Аватар для Arcueid1691
 
Регистрация: 31.05.2009
Сообщений: 97
По умолчанию

дописала readln массив запрашивает, но выдает все те же 10 и9
Код:
uses crt;
var
i : integer;
m1,m2: integer;
a: array[1..10] of integer;

begin
clrscr;
m1 := -1;
m2 := -1;
for i:=1 to 10 do
 a[i] := i;
 readln;
for i:=1 to 10 do begin
 IF (m1=-1) or (a[m1]<a[i]) then m1:=i;
  end;
 writeln(a[m1]);
  for i:=1 to 10 do begin
  if ((i<>m1) and ((m2=-1) or (a[m2]<a[i]))) then m2:=i;
  end;
  writeln(a[m2]);
readln;
end.
спят подружки вредные безмятежным сном,
Снятся мышкам хлебные крошки под столом, Буратинам - досточки, кошкам - караси,
Всем собакам - косточки, программистам - Си (с)
Arcueid1691 вне форума
Старый 01.06.2009, 03:28   #10
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Arcueid1691
заменила в условиях, программа не запрашивает ввод массива, выдает 10 и 9. в чем причина?
Причина в том, что вы нигде и не запрашиваете элементы массива, а присваиваете им значение счетчика:
Код:
for i:=1 to 10 do
 a[i] := i;
10 и 9 - результат работы (максимумы).

Цитата:
дописала readln массив запрашивает
Во-первых, если тело цикла не заключать в блок begin-end, то будет выполняться только первая инструкция.
Во-вторых, чтобы ввести значение, нужно указывать переменную как аргумент в readln.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]

Последний раз редактировалось Sazary; 01.06.2009 в 03:31.
Sazary вне форума
Закрытая тема


Купить рекламу на форуме - 42 тыс руб за месяц



Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Ошибки Jasper92 Компьютерное железо 6 10.04.2009 19:56
Две ошибки Crivel Помощь студентам 10 31.07.2008 12:18
Ошибки delphin100 Операционные системы общие вопросы 12 17.04.2008 14:15
Ошибки Terran Общие вопросы Delphi 3 05.02.2008 20:47