Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.91/11: Рейтинг темы: голосов - 11, средняя оценка - 4.91
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 16
1

Нельзя преобразовать тип function(a: byte;b: byte): byte к integer (Списки)

25.11.2016, 19:33. Просмотров 1947. Ответов 2
Метки нет (Все метки)

Создать список из целых чисел.Поменять в списке местами максимальный и минимальный
элементы
Проблемы c процедурами Pos и Chang: пос находит макс и мин, я проверял, но вот Chang менять не хочет, хотя по идее все правильно. И еще вопрос можно ли этот код как то оптимизировать? Со списком же работаем по элементно, т, е мы сначало должны пройти и найти макс мин, а потом еще раз пройти и заменить все максимальные и минимальные элементы?
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
uses tqueueIn;
var head,tail:tqueue;
name:string;
x,y:integer;
 
procedure CopyFileToQueue(name:string;var h,t:tqueue);
var f:text;
    a:integer;
    begin
    assign(f,name); reset(f);
    while not eof(f) do 
    begin read(f,a);
    Add(h,t,a); end;
    close(f);
    end;
 
procedure CopyQueueToFile(name:string;var h,t:tqueue);
var f:text;
    a:integer;
    begin
    assign(f,name);rewrite(f);
    while head<>nil do 
    begin a:=take(h,t);
    write(f,a,' '); end;
    close(f);
    end;
    
 procedure PosMM(var head,tail:tqueue);
    var h,t:tqueue;
    max,min,temp:integer;
      a:integer;
      begin 
      InitQueue(h,t);
      min:=maxInt;
      max:=0;
      while head<>nil do begin
      a:=Take(head,tail);
   
      if (a>max) or (a<min) 
      then begin Add(h,t,a); 
      if a>max then max:=a 
      else min:=a end
      else Add(h,t,a)
      end;
      head:=h; tail:=t;
      end;
      
      procedure ChangMM(var head,tail:tqueue);
      var h,t:tqueue;
      a:integer;
      begin 
      InitQueue(h,t);
      PosMM(head,tail);
      while head<>nil do begin
      a:=Take(head,tail);
      if (a=max) or (a=min)
      then begin if (a=max) then Add(h,t,min)
      else Add(h,t,max); end
      else Add(h,t,a);
      end;
      head:=h; tail:=t;
      end;
      
begin 
write('введите имя файла ');readln(name);
InitQueue(head,tail);
CopyFileToQueue(name,head,tail);
{PosMM(head,tail);}
ChangMM(head,tail);
CopyQueueToFile(name,head,tail);
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
25.11.2016, 19:33
Ответы с готовыми решениями:

Нельзя преобразовать тип byte к System.Drawing.Color
uses graphABC, crt; var color:byte; begin randomize; repeat color:=random(15);...

Нельзя преобразовать тип function(a: integer;b: integer):integer к real
unit matr1; interface type matr2=array of real; matr3=array of real; procedure sum...

Нельзя преобразовать тип function:integer к integer
Есть такой кусок кода, не могу сделать вот эту операцию... work:=work+a; function work...

Тип set of byte
Здравствуйте. Написал программу, и при выполнении выдает ошибку: Попытка присвоить значение...

2
Модератор
61725 / 46203 / 31874
Регистрация: 18.05.2008
Сообщений: 111,473
26.11.2016, 10:58 2
Чтобы поискать ошибки людям наверняка понадобится модуль tqueueIn
0
0 / 0 / 1
Регистрация: 24.04.2016
Сообщений: 16
26.11.2016, 16:35  [ТС] 3
Сам модуль выглядит вот так
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
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
{Модуль для очереди}
Unit tqueueIn;
Interface 
type 
tqueue=^que;
que = record
inf:integer;
next:tqueue;
end;
 
procedure Add(var head, tail:tqueue;item:integer);
function Take (var head, tail: tqueue):integer;
function Empty(head:tqueue):boolean;
function peek (head: tqueue): integer;
function Pop(var head: tqueue): integer;
procedure initqueue(var head,tail:tqueue);
{Procedure CopyFileToQueue(name:string;var h,t:tqueue);
procedure CopyQueueToFile(name:string;var h,t:tqueue);}
procedure CopyFileToFile(name1,name2:string);
 
 
implementation 
 
 
var head,tail:tqueue;
 
{Добавление элемента в очередь}
procedure Add(var head, tail:tqueue;item:integer);
var r:tqueue;
begin 
new(r);
r^.inf:=item;r^.next:=nil;
if head=nil
then begin head:=r; tail:=r; end
else begin tail^.next:=r; tail:=r; end;
end;
 
{Выборка верхнего элемента из очереди}
function Take (var head, tail: tqueue):integer;
var i: integer;
r: tqueue;
begin
r:= head; 
i:=r^.inf;
head:=head^.next;
if head=nil then
tail:=nil;
dispose(r);
take:=i;
end;
 
{}
function Empty(head:tqueue):boolean;
begin 
if head=nil then 
Empty:= true else
Empty :=false;
end;
 
 
{Функция просмотра верхнего элемента:}
function peek (head: tqueue): integer;
begin Peek := head^.inf; end;
 
{Функция выбора верхнего элемента из стэка:}
function Pop(var head: tqueue): integer;
var i:integer;
r:tqueue;
begin
r:=head;
i:=r^.inf;
head:= r^.next;
dispose(r);
pop:=i;
end;
 
{Инициализация очереди}
procedure initqueue(var head,tail:tqueue);
begin head:=nil;tail:=nil; end;
 
{Процедура копирует один фаил в другой}
procedure CopyFileToFile(name1,name2:string);
var f,d:text;
a:integer;
begin 
assign(f,name1); reset(f);
assign(d,name2);rewrite(d);
while not eof(f) do begin 
read(f,a); write(d,a,' '); end;
close(f); close(d);
end;
 
 
 
end.
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
26.11.2016, 16:35

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

UnicodeDecodeError: 'utf8' codec can't decode byte 0x80 - invalid start byte
Добрый день При вызове скрипта вылетает такая ошибка: &quot;UnicodeDecodeError: 'utf8' codec can't...

'utf-8' codec can't decode byte 0xff in position 0: invalid start byte
Работаю с библиотеками PIL и telebot В чем может быть проблема ? Ошибка - 'utf-8' codec can't...

Перевести строку, содержащую данные массива байт (byte[]) в byte[]
Приветствую. Есть такая строка - &quot;&quot; Как её перевести в массив байт? 1. Допустим, что...

Invalid byte 1 of 1-byte UTF-8 sequence - ошибка (Intellij idea)
Есть небольшой проект, точнее, только зачаток, запускается нормально, но при сборке в jar ругается,...


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

Или воспользуйтесь поиском по форуму:
3
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.