Форум программистов, компьютерный форум, киберфорум
Pascal (Паскаль)
Войти
Регистрация
Восстановить пароль
Карта форума Темы раздела Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.50/8: Рейтинг темы: голосов - 8, средняя оценка - 4.50
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 31
1

Определить вторые по значению минимальное и максимальное числа и их позиции в файле

13.01.2016, 14:26. Показов 1584. Ответов 8
Метки нет (Все метки)

Author24 — интернет-сервис помощи студентам
Создать типизированный файл целых чисел. Записать в него с консоли последовательность целых чисел, конец последовательности (терминатор) – ноль, который не записывается в файл.
Определить вторые по значению минимальное и максимальное числа и их позиции в файле (нумерация данных в файле начинается с нуля). Предусмотреть случай, когда таких чисел в файле нет. Удалить из файла все числа, находящиеся между ними.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
13.01.2016, 14:26
Ответы с готовыми решениями:

Определить в матрице минимальное и максимальное значение и их позиции
помогите написать код...я просто в этом не очень разбираюсь...буду очень благодарен за помощь ...

Если все 3 заданных числа положительные, определить максимальное, иначе определить максимальное и минимальное
Даны три целых числа a, b, c. Если все числа положительные, определить максимальное из них, в...

В файле записаны целые числа. Найти максимальное и минимальное число и записать в другой файл
нужно сделать задачу в питоне

Файл: Определить максимальное и минимальное числа.
Дан файл целых чисел. Определить максимальное и минимальное числа.

8
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
13.01.2016, 15:10 2
Цитата Сообщение от Нерион Посмотреть сообщение
Предусмотреть случай, когда таких чисел в файле нет.
Это как? Если в файле есть 2 числа, то одно из них первое максимальное и второе минимальное, а другое число второе максимальное и первое минимальное.
Это может быть только если файл пустой или в нем 1 число.
0
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 31
13.01.2016, 15:16  [ТС] 3
Если в файле нет 2 максимального или 2 минимального то просто вывести фразу 'такого числа нет'.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
13.01.2016, 15:20 4
Совсем понимать не хочешь. Это возможно только в случае если в файле меньше двух чисел.
А вообще пиши как вздумается, твое же задание.
Напишешь покажешь поправим если неверно.
0
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 31
13.01.2016, 15:29  [ТС] 5
Она работает неправильно.
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
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
uses crt;
var max2:file of integer;
    a,b,mx1,mx2,mn1,mn2,imx1,imx2,imn1,imn2,i,k:integer;
begin
 
assign(max2,'file');
rewrite(max2);
writeln('Введите в файл целые числа, окончание ввода 0:');
repeat
read(a);
if a<>0 then write(max2,a);
until a=0;
 
 
writeln('Содержание исходного файла:');
reset(max2);
 
if filesize(max2)<2 then
 begin
  writeln('Вы ввели менее двух чисел, поиск не возможен');
  close(max2);
  exit;
 end;
 
while not eof(max2) do
 begin
  read(max2,a);
  write(a,' ');
 end;
writeln;
seek(max2,0); //в начало файла
read(max2,a);//первое число
seek(max2,1);
read(max2,b); //второе
if a>b then //выбираем первые мин и макс
 begin
  mx1:=a;
  imx1:=0;
  mx2:=b;
  imx2:=1;
  mn1:=b;
  imn1:=1;
  mn2:=a;
  imn2:=0;
 end
else
 begin
  mx1:=b;
  imx1:=1;
  mx2:=a;
  imx2:=0;
  mn1:=a;
  imn1:=0;
  mn2:=b;
  imn2:=1;
 end;
 //если только 2 элемента, удалять нечего
if filesize(max2)=2 then
 begin
  writeln('Второе максимальное=',mx2,' его позиция=',imx2);
  writeln('Второе минимальное =',mn2,' его позиция=',imn2);
  writeln('Элементов для удаления нет');
  close(max2);
  exit;
 end;
 
for i:=2 to filesize(max2)-1 do 
 begin
  seek(max2,i);
  read(max2,a);
  if a>mx1 then 
   begin
    imx2:=imx1;
    mx2:=mx1;
    imx1:=i;
    mx1:=a; 
   end;
  if a>mx2 then
   begin
    imx2:=i;
    mx2:=a;
   end;
  if a<mn1 then  
   begin
    imn2:=imn1;
    mn2:=mn1;
    imn1:=i;
    mn1:=a;
   end;
  if a<mn2 then
   begin
    imn2:=i;
    mn2:=a;
   end;
 end;
writeln(' второй максимальный =',mx2,' его индекс=',imx2);
writeln(' второй минимальный =',mn2,' его индекс=',imn2);
if imx2<imn2 then //если макс меньше, поменяем
 begin
  a:=imx2;
  imx2:=imn2;
  imn2:=a;
 end;
writeln('Удаляем элементы с номерами ',imn2+2,'...',imx2);//номер на 1 больше индекса
if imx2-imx1<=2 then //если они рядом
 begin
  write('Элементов для удаления нет');
  close(max2);
  exit;
 end;
k:=0;
for i:=imx2 to filesize(max2)-1 do//от 2 макс до конца
 begin
  seek(max2,i);
  read(max2,a);
  k:=k+1;
  seek(max2,imn2+k);//все поднимем вверх за 2 мин
  write(max2,a);
 end;
seek(max2,filesize(max2)-(imx2-imn2-1));//отступаем от конца на кол. удаляемых элементов
truncate(max2);//обрезаем пустое
seek(max2,0); //вывод результата
reset(max2);
writeln('Удаление элементов между вторым минимальным и вторым максимальным:');
while not eof(max2) do
 begin
  read(max2,a);
  write(a,' ');
 end;
close(max2);
end.
0
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 31
13.01.2016, 15:48  [ТС] 6
Ёлки.Второе минимальное находит неправильно.
Миниатюры
Определить вторые по значению минимальное и максимальное числа и их позиции в файле  
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
13.01.2016, 15:54 7
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Цитата Сообщение от Нерион Посмотреть сообщение
Второе минимальное находит неправильно.
else не хватает
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
for i:=2 to filesize(max2)-1 do
 begin
  seek(max2,i);
  read(max2,a);
  if a>mx1 then
   begin
    imx2:=imx1;
    mx2:=mx1;
    imx1:=i;
    mx1:=a;
   end
  else if a>mx2 then
   begin
    imx2:=i;
    mx2:=a;
   end;
  if a<mn1 then
   begin
    imn2:=imn1;
    mn2:=mn1;
    imn1:=i;
    mn1:=a;
   end
  else if a<mn2 then
   begin
    imn2:=i;
    mn2:=a;
   end;
 end;
1
0 / 0 / 0
Регистрация: 10.01.2016
Сообщений: 31
13.01.2016, 15:57  [ТС] 8
Спасибо большое.Теперь осталось блок-схему, но это уже моя забота.
0
Почетный модератор
64300 / 47595 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
13.01.2016, 16:14 9
строка 105
if imx2-imx1<=2 then
нужно
if imx2-imn2<=2 then
1
13.01.2016, 16:14
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
13.01.2016, 16:14
Помогаю со студенческими работами здесь

Определить максимальное и минимальное числа в данной последовательности
Задача 1 Вводится последовательность ненулевых чисел, завершаемая нулем. Определить максимальное и...

Определить максимальное и минимальное числа и записать их в файл
5. Создать с помощью программы файл из 10 целых чисел. Определить максимальное и...

Определить максимальное и минимальное значение числа в заданной строке листа
Задание:Составьте процедуру определения максимального и минимального значения числа в заданной...


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

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2024, CyberForum.ru