Новые сообщения · Правила  
Страница 1 из 11
Модератор форума: Berestovskiy 
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Задачи на сортировку
Задачи на сортировку
Есть файл students.txt с данными студентов( ФИО, группа , курс) . Нужно отсортировать данные чтобы программа дала результат ( ФИО -> курс -> группа). Спасибо зарание!!!
1 | Автор: Dmitriy17 | 2013-12-08, 18:52   |  Репутация: [ + 0 ]
Помогите, пожалуйста! Такое задание: отсортировать массив методом выбора по не возрастанию сумм элементов строк. Написала программу, но не совсем правильно. Программа считает суммы строк записывает их в одномерный массив и его сортирует. ну и в итоге получается одномерный массив. а нужно что бы отсортированым был изначально заданный массив двумерный. Не получается переделать.
Вот моя программа:
program xxx;
uses crt;
var
i,j,n:integer;
matr:array[1..5,1..5] of real;
masSum:array[1..5] of real;
temp:real;
begin
randomize; {inicializacia dat4ika slu4 4isel}
n:=5; {koli4-vo elementov}
for i:=1 to n do {zadaem cikl}
for j:=1 to n do
begin
write('vvedite [',i,'][',j,'] element = '); {zapros vvoda elemebta massiva}
readln(matr[i,j]); {4tenie s klavi}
{ matr[i,j]:=random(10);} {vvod dannix esli randomom}
{ writeln(' ',matr[i,j]:3:3);} {otobrajenie dannix esli randomom}
masSum[i]:= masSum[i]+matr[i,j]; {summirovanie elementov po stroke}
end;
writeln('press eny key to next'); {vivod soobshenia}
readkey; { najatie luboi klavishi}
clrscr; {o4istka ekrana}
writeln('summa po stroke rezultat ');
for i:=1 to n do {vivod na ekran summi}
writeln(masSum[i]:3:3); {vivod na ekran}
for j:=1 to n do {uporado4ivanie po ciklu}
for i:=2 to n do
if masSum[i-1]>masSum[i] then masSum[i]:=masSum[i] {srvnenie elementov}
else {perestanovka elementov}
begin
temp:=masSum[i];
massum[i]:= massum[i-1];
massum[i-1]:=temp;
end;
writeln; {vivod rezultata}
writeln('rezultat preobrazovania');
writeln;
for i:=1 to n do {vivod na ekran summi}
writeln(masSum[i]:3:3);
writeln('press enter to exit'); {vivod soobshenia}
readln; {ojidanie}
{konec}
end.
2 | Автор: 111Оля111 | 2013-12-08, 18:52   |  Репутация: [ + 0 ]
Помогите решить задачу
Дана матрица n X m.Отсортировать по возрастанию элементы стоящие по периметру матрицы,начиная с элемента A(n,1) по часовой стрелке.Среди элементов,находящихся внутри периметра найти максимум и минимум с указанием индексов.
3 | Автор: student18 | 2013-12-08, 18:52   |  Репутация: [ + 0 ]
Ребят помогите пожалуйста.. надо зачет получить а не успела все задачи сдать(((

Написать сортировки массива- прямое включение и шелла, и сравнить какая из них работает быстрее.. с этим счетчиком ничего не получается у меня(( И сидеть над ней уже некогда, пишу про ферзей... завтра надо обе сдать.. Последняя надежда на вас...

4 | Автор: Noiziya | 2013-12-08, 18:52   |  Репутация: [ + 0 ]
Сортировка выбором. Дана последовательность чисел
а1 а2, ..., аn. Требуется переставить элементы так, чтобы они
были расположены по убыванию. Для этого в массиве, начиная с
первого, выбирается наибольший элемент и ставится на первое
место, а первый — на место наибольшего. Затем, начиная со
второго, эта процедура повторяется. Написать алгоритм сортировки
выбором.
5 | Автор: enable23 | 2013-12-08, 18:52   |  Репутация: [ + 0 ]
Есть 3 статических одномерных массива.Пользователь вводит их, массивы(каждый) сортируются по убыванию и заносятся в динамический двумерный массив

var a,b,c: array[1..10] of integer;
x:array of integer;
i,j,n:integer;
begin
randomize;
for i:=1 to 10 do a[i]:=random(10)-5;
for i:=1 to 10 do b[i]:=random(10)-5;
for i:=1 to 10 do c[i]:=random(10)-5;
SetLength(x,32); {специальная процедура выделения памяти}
for i:=1 to 10 do
begin
inc(j);
x[j]:=a[i];
end;
for i:=1 to 10 do
begin
inc(j);
x[j]:=b[i];
end;
for i:=1 to 10 do
begin
inc(j);
x[j]:=c[i];
end;
for i:=1 to 30 do write(x[i],' ');
end.

Помогите пожалуйста сделать сортировку массива.
6 | Автор: Yurik555 | 2013-12-08, 18:52 | Изменено: Yurik555 - Чт, 2011-12-22, 20:29   |  Репутация: [ + 0 ]
Применяя метод бинарных вставок, отсортировать массив, файл, список, элементами которых являются одни и те же целые числа, выбранные случайным образом из некоторого промежутка. Сравнить время работы программ для каждого случая. Результаты отображать на экране.
7 | Автор: mandarin | 2013-12-08, 18:52   |  Репутация: [ + 0 ]
Помогите пож-то решить задачу...
Дана матрица. Упорядочить элементы столбцов матрицы по неубыванию, а сами столбцы по 
неубыванию характеристик строк. Характеристикой столбца матрицы называется сумма его 
положительных четных элементов. Использовать пирамидальную сортировку, реализовав метод в виде 
подпрограммы.
8 | Автор: nasta11 | 2013-12-08, 18:52   |  Репутация: [ + 0 ]
1) создаешь массив S с тремя строками и длиной равной периметру матрицы 2*(n+m)-4 (кажется так)
2) вписываешь в этот массив в первую строку элементы периметра, а во вторую и третью строку его индексы
3) сортируешь по первой строке (не переставляя при этом индексы во второй и третьей строках)
4) берешь исходную матрицу и заменяешь в ней элементы с индексами из второй и третьей строки S на элементы из первой строки;
=============
1) Создаешь массив размером (n-2)x(m-2) и переписываешь в него внутреннюю матрицу (без элементов периметра)
2) находишь минимум и максимум;
9 | Автор: admin | 2013-12-08, 18:52   |  Репутация: [ + 21 ]
уж чего-чего а соритровок у нас на сайте полно. вам достаточно в поисковой строке сайта сделать запрос и вы найдете решение своих задач.
10 | Автор: admin | 2013-12-08, 18:52   |  Репутация: [ + 21 ]
А не прокатит обычная пузырьковая?:)

var
a:array[1..100]of integer;
i,j,n,q:integer;
begin
writeln('Введите размерность массива');
read(n);
writeln('Вводите элементы массива');
for i:=1 to n do
read(a[i]);
for i:=1 to n do
for j:=1 to n-1 do
if a[j]<a[j+1] then begin q:=a[j+1];a[j+1]:=a[j];a[j]:=q;end;
for i:=1 to n do
write(a[i],' ');
end.


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
11 | Автор: Berestovskiy | 2013-12-08, 18:52   |  Репутация: [ + 211 ]
Сортировка:

for i:=1 to n do
for j:=1 to m-1 do
if a[j]>a[j+1] then begin k:=a[j];a[j]:=a[j+1];a[j+1]:=k;


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
12 | Автор: Berestovskiy | 2013-12-08, 18:52   |  Репутация: [ + 211 ]
"Спасибо" принимается повышением репутации ( Зелёный плюсик:) )

Нужна помощь? Сюда: vkontakte.ru/berestovskiy
13 | Автор: Berestovskiy | 2013-12-08, 18:53   |  Репутация: [ + 211 ]


Нужна помощь? Сюда: vkontakte.ru/berestovskiy
13 | Автор: Berestovskiy | 2013-12-08, 18:53   |  Репутация: [ + 211 ]
Форум ПРОГРАММИСТОВ » ПРОГРАММИРОВАНИЕ » Паскаль » Задачи на сортировку
Страница 1 из 11
Поиск: