2 / 2 / 0
Регистрация: 29.01.2010
Сообщений: 59
1

Рассортировать по убыванию методом выбора массив, взятый из файла.

29.01.2010, 18:43. Показов 813. Ответов 4
Метки нет (Все метки)

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

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

Отсортировать массив по убыванию методом выбора
В паскале abc Сформировать и вывести на экран последовательность из n элементов, заданных...

Сортировать массив методом выбора по убыванию
Задание 2 Массив на 10 ячеек заполнить рендомно числами до 50. Сортировать этот массив методом...

Отсортировать массив по убыванию методом выбора максимального элемента
Помогите. Дана задача отсортировать массив ПО УБЫВАНИЮ методом выбора МАКСИМАЛЬНОГО элемента. Вся...

4
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.01.2010, 21:34 2
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
uses crt;
type mas=array[1..100] of integer;//тип масива
procedure ReadFile(var f:text;var v:mas;var x:byte);//чтение файла
var i:byte;
    name:string;
begin
write('Имя файла для чтения: ');
readln(name);
name:=name+'.txt';
assign(f,name);
{$I-}reset(f);{$I+}
if IOResult<>0 then//если нет файла, чтобы не выкидывало прграмму
 begin
  writeln('Файл ',name,' не найден!');
  writeln('Программа будет закрыта.');
  readln;
  exit;
 end;
read(f,x);//читаем размер массива
writeln('Исходный масив:');
for i:=1 to x do
 begin
  read(f,v[i]);//читаем сам массив
  write(v[i],' ');//выводим на экран
 end;
writeln;
writeln;
close(f);//закрываем файл
end;
procedure WriteFile(var f:text;v:mas;x:byte);//вывод массива в файл
var i:byte;
    name:string;
begin
write('Имя файла для записи: ');
readln(name);
name:=name+'.txt';
assign(f,name);
rewrite(f);
writeln(f,'Itogovyj massiv:');
for i:=1 to x do
write(f,v[i],'  ');//пишем массив через пробелы
close(f);
write('Файл записан!');
end;
procedure Sort(var v:mas;x:byte);//сортировка массива выбором по убыванию
var i,nmax,j:byte;
    buf:integer;
begin
for i:=1 to x-1 do
  begin
    nmax:=i;//текущий максимальный
    for j:=i+1 to x do
    if v[j]>v[nmax] then nmax:=j;//ищем впереди самый большой
    buf:=v[i];
    v[i]:=v[nmax];//меняем местами
    v[nmax]:=buf;
  end;
end;
procedure Udal(var v:mas;var x:byte);//удаление нолей
var i,j:byte;
begin
i:=1;
while i<=x do//пока не конец массива
if v[i]=0 then//если ноль
 begin
  for j:=i to x-1 do//сдвигаем к нему на 1 конец массива
  v[j]:=v[j+1];
  x:=x-1;//уменьшаем размер масива
 end
else i:=i+1;//если не ноль, дальше
writeln('Итоговый массив:');
for i:=1 to x do
write(v[i],' ');//выводим на экран
writeln;
end;
var a:mas;
    f,g:text;
    n:byte;
begin
clrscr;
ReadFile(f,a,n);
Sort(a,n);
Udal(a,n);
WriteFile(g,a,n);
readln
end.
2
2 / 2 / 0
Регистрация: 29.01.2010
Сообщений: 59
29.01.2010, 22:09  [ТС] 3
А нельзя ли эту программу не много по править? Просто когда записываешь в файл, в нем в итоге находятся одни иероглифы и еще надо, что бы массив тоже выводился на экран
0
Почетный модератор
64299 / 47594 / 32743
Регистрация: 18.05.2008
Сообщений: 115,181
29.01.2010, 22:14 4
А Вы исходный файл создали, если да, то что Вы в нем и как написали?
Нужно типа такого.
11
4 5 -5 0 6 -3 5 0 8 9 10
А поправлять не программу нужно, а мозги и руки.
0
2 / 2 / 0
Регистрация: 29.01.2010
Сообщений: 59
29.01.2010, 23:36  [ТС] 5
Разобрался, но спасибо за совет. Иероглифами выходило оказывается текст
0
29.01.2010, 23:36
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
29.01.2010, 23:36
Помогаю со студенческими работами здесь

Сформировать одномерный массив, и отсортировать его по убыванию методом выбора
1.задача Из положительных элементов первой и последней строки прямоугольной матрицы необходимо...

Отсортировать массив, заданный с клавиатуры, простым методом выбора по убыванию
Нужно отсортировать массив, заданный с клавиатуры простым методом выбора по убыванию. На...

Отсортировать массив по убыванию двумя методами: «пузырька» и методом прямого выбора
Задание. Элементы массива задать с помощью счетчика случайных чисел. Сортировку элементов массива...

Отсортировать массив методом выбора, при помощи поиска минимального элемента, по убыванию
pascal ABC Дан линейный массив, содержащий Nцелых чисел. Отсортировать его методом выбора, при...

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

Отсортировать массив методом выбора по убыванию и найти сумму положительных элементов с нечётными индексами
. Дан одномерный массив вещественных чисел. Отсортировать их методом выбора в порядке убывания....


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

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

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