С Новым годом! Форум программистов, компьютерный форум, киберфорум
PascalABC.NET
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.93/15: Рейтинг темы: голосов - 15, средняя оценка - 4.93
0 / 0 / 0
Регистрация: 02.11.2019
Сообщений: 49
1

Выдает ошибку «Операция< не применима к типам function”

02.11.2019, 18:16. Показов 3033. Ответов 7

Author24 — интернет-сервис помощи студентам
В общем, пишу программу по задаче:
Дана Последовательность из 100 различных целых чисел. Найти сумму чисел этой последовательности, расположенных между максимальным и минимальным числом этой последовательности, оба этих числа включить в сумму.
Она обязательно должна быть с применением модуля.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
program Summa; 
var X: array[1..100] of integer; 
sum, i: integer; 
 
procedure H; 
var X: array[1..100] of integer; 
max,min,i: integer; 
begin
 max:=1; 
 min:=1; 
 for i:=1 to 100 do
 begin
 if X[i]>X[max] then
 max:=i; 
 if X[i]<X[min] then
 min:=i;
 end;
 end; 
 
begin
 sum:=0; 
 randomize; 
 for i:=1 to 100 do
 begin
 X[i]:=random(100);
 end; 
 begin
 H
 end; 
 if (min< max) then        Вот в этой строчке
 for i:=min to max do
 sum := sum+X[i] 
 else
 for i:=max to min do
 sum:=sum+X[i]; 
 writeln('сумма=',sum);
end.
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
02.11.2019, 18:16
Ответы с готовыми решениями:

Операция '*' не применима к типам real и function(x: real): real
function Arccos1(x: integer): real; begin arccos1 := sqr(Arccos(x)) + arccos(x-(1/2)); end; ...

Операция '+' не применима к типам integer и string
Привет,помогите пожалуйста ,проблема в 46 строке Что изменить? Код паскаль: program orginizer;...

Как исправить Операция '=' не применима к типам boolean и integer при работе с if
if a=0 and a=0 then inc(nl) if nl = 0 then writeln (' Пары чисел равные нулю отсутствуют')

Ошибка "операция '<' не применима к типам boolean и integer"
операция '&lt;' не применима к типам boolean и integer program prim; var a,b,c:integer; begin...

7
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,791
02.11.2019, 18:28 2
Лучший ответ Сообщение было отмечено Sasha5467755 как решение

Решение

У вас переменные min и max объявлены только в процедуре H. Их не существует в контексте основного begin-end., поэтому у вас сравнивает функции min и max из стандартного модуля. А раз сравнивать в них нечего - выдаёт соответствующую ошибку.
2
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2019, 18:48 3
Лучший ответ Сообщение было отмечено Sasha5467755 как решение

Решение

В Паскаль АВС.net есть встроенные функции max, min
function Max(a: число, b: число): число;
Возвращает максимальное из чисел a,b
function Min(a: число, b: число): число;
Возвращает минимальное из чисел a,b
поэтому нельзя эти имена присваивать переменным.
Код даже для обычного Паскаля написан криво, не говоря уж о ABC.net, поправил.

Pascal
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
program Summa; 
var X: array[1..100] of integer; 
    mn,mx,sum: integer; 
procedure H; 
begin
mx:=1; 
mn:=1; 
for var i:=1 to 100 do
 begin
  if X[i]>X[mx] then mx:=i
  else if X[i]<X[mn] then mn:=i;
 end;
 end; 
 
begin
sum:=0; 
randomize; 
for var i:=1 to 100 do
 begin
  X[i]:=random(100);
  write(X[i]:4)
 end; 
 H;
 if mn<mx then  
  begin      // Вот в этой строчке
   for var i:=mn to mx do
   sum := sum+X[i];
  end 
 else
  begin 
   for var i:=mx to mn do
   sum:=sum+X[i]; 
  end;
 writeln; 
 writeln('сумма=',sum);
end.
1
142 / 108 / 57
Регистрация: 15.09.2017
Сообщений: 425
02.11.2019, 19:30 4
Цитата Сообщение от Puporev Посмотреть сообщение
поэтому нельзя эти имена присваивать переменным.

Не по теме:


Можно)

Pascal
1
2
3
begin
  var f: (integer, integer) -> integer := Max;
end.

0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2019, 19:34 5
Так как у ТС, нельзя. Выдает ошибку которую он написал.
0
0 / 0 / 0
Регистрация: 02.11.2019
Сообщений: 49
02.11.2019, 19:47  [ТС] 6
Да я знаю, что написано криво. Подскажите, что делает строчка у вас в программе write(X[i]:4) ?

Добавлено через 7 минут
И вообще, СПАСИБО БОЛЬШОЕ!
0
Почетный модератор
64303 / 47600 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
02.11.2019, 19:51 7
[quote="Sasha5467755;13956903"]write(X[i]:4[)/quote]
Это вывод чисел с выделение 4 позиций под каждое число.
0
2351 / 1454 / 526
Регистрация: 07.04.2017
Сообщений: 4,791
02.11.2019, 20:19 8
Цитата Сообщение от Puporev Посмотреть сообщение
поэтому нельзя эти имена присваивать переменным.
Можно. Только если объявить эти переменные - потом те функции нельзя будет вызвать там, где доступны переменные.
А у ТС ошибка вообще от другого.
0
02.11.2019, 20:19
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
02.11.2019, 20:19
Помогаю со студенческими работами здесь

Операция '=' не применима к типам char и real
Как мне записать код нормально чтобы выполнялось всё по порядку? Мне надо, чтобы при вводе...

Операция '=' не применима к типам boolean и integer
Помогите с ошибкой &quot;Операция '=' не применима к типам boolean и integer&quot; ошибка к строке 16....

Операция '<=' не применима к типам boolean и integer
Подскажите, как исправить var r, m, l, C: integer; begin begin if (1&lt;=l&lt;=r&lt;=200000) and...

Ошибка: Операция '<>' не применима к типам integer и boolean
Уважаемые форумнечане, подскажите как решить данную проблему, программа выдает ошибку &quot;pas1.pas(5)...

Program5.pas(7) : Операция '<' не применима к типам boolean и integer
program jhbg; var a,b,c,d:longint; begin Writeln ('Введите скорости'); Readln (a,b); Readln...

Ошибка в программе: Операция '=' не применима к типам real и boolean
Помогите исправить ошибку в 9 строке программы: program storinka40zadacha7; uses crt; var...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Новые блоги и статьи
Книги и учебные ресурсы по C#
InfoMaster 08.01.2025
Базовые учебники и руководства Одной из лучших книг для начинающих является "C# 10 и . NET 6 для начинающих" Эндрю Троелсена и Филиппа Джепикса . Книга последовательно раскрывает основные концепции. . .
Что такое NullReferenceEx­­­ception и как исправить?
InfoMaster 08.01.2025
NullReferenceException - одно из самых распространенных исключений, с которым сталкиваются разработчики на C#. Это исключение возникает при попытке обратиться к членам объекта (методам, свойствам или. . .
Что такое Null Pointer Exception (NPE) и как это исправить?
InfoMaster 08.01.2025
Null Pointer Exception (NPE) - это одно из самых распространенных исключений в Java, которое возникает при попытке использовать ссылку на объект, значение которой равно null. Это исключение относится. . .
Русский язык в консоли C++
InfoMaster 08.01.2025
При разработке программ на C++ одной из частых проблем, с которой сталкиваются русскоязычные программисты, является корректное отображение кириллицы в консольных приложениях. Эта проблема особенно. . .
Telegram бот на C#
InfoMaster 08.01.2025
Разработка ботов для Telegram стала неотъемлемой частью современной экосистемы мессенджеров. C# предоставляет мощный и удобный инструментарий для создания разнообразных ботов, от простых. . .
Использование GraphQL в Go (Golang)
InfoMaster 08.01.2025
Go (Golang) является одним из наиболее популярных языков программирования, используемых для создания высокопроизводительных серверных приложений. Его архитектурные особенности и встроенные. . .
Что лучше использовать при создании класса в Java: сеттеры или конструктор?
Alexander-7 08.01.2025
Вопрос подробнее: На вопрос: «Когда одновременно создаются конструктор и сеттеры в классе – это нормально?» куратор уточнил: «Ваш класс может вообще не иметь сеттеров, а только конструктор и геттеры. . .
Как работать с GraphQL на TypeScript
InfoMaster 08.01.2025
Введение в GraphQL и TypeScript В современной разработке веб-приложений GraphQL стал мощным инструментом для создания гибких и эффективных API. В сочетании с TypeScript, эта технология. . .
Счётчик на базе сумматоров + регистров и генератора сигналов согласования.
Hrethgir 07.01.2025
Создан с целью проверки скорости асинхронной логики: ранее описанного сумматора и предополагаемых fast регистров. Регистры созданы на базе ранее описанного, предполагаемого fast триггера. То-есть. . .
Как перейти с Options API на Composition API в Vue.js
BasicMan 06.01.2025
Почему переход на Composition API актуален В мире современной веб-разработки фреймворк Vue. js продолжает эволюционировать, предлагая разработчикам все более совершенные инструменты для создания. . .
Архитектура современных процессоров
inter-admin 06.01.2025
Процессор (центральный процессор, ЦП) является основным вычислительным устройством компьютера, которое выполняет обработку данных и управляет работой всех остальных компонентов системы. Архитектура. . .
История создания реляционной модели баз данных, правила Кодда
Programming 06.01.2025
Предпосылки создания реляционной модели В конце 1960-х годов компьютерная индустрия столкнулась с серьезными проблемами в области управления данными. Существовавшие на тот момент модели данных -. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru