Форум программистов, компьютерный форум, киберфорум
Pascal ABC
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.67/6: Рейтинг темы: голосов - 6, средняя оценка - 4.67
Alexei B

Выполнить сортировку с помощью прямого обмена и вывести данные и результаты на экран

01.06.2011, 08:51. Показов 1118. Ответов 1
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте.
Совсем запутался. 1.Требуется выполнить чтение данных с клавиатуры и из файла с возможностью выбора.2.Выполнить сортировку с помощью прямого обмена и вывести данные и результаты на экран.
Ругается на строку 43. Подозреваю, что неправильно задал тип переменной х. Как сделать так, чтобы оно заработало?
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
uses crt;
const max=20;
type index=1..max;
tablica=record
mes: string[60];
tema_rabot:string[60];
avtor:string[40];
time:string[5];
end;
var diplom:array[index] of tablica;
i:integer; j:integer; x: tablica; f:text;
n:index;
begin
write (' откуда брать данные? ');
read (i);
If i=1 then
 
for i:=1 to n do
with  diplom[i] do
begin
writeln('vvedite kol-vo');readln(n);
writeln('tema ');readln(diplom[i].tema_rabot);
writeln('mesyac ');readln(diplom[i].mes);
writeln('familia ');readln(diplom[i].avtor);
writeln('zatrachenoe vremya ');readln(diplom[i].time);
writeln;
end else
if i=2 then
begin
assign (f, 'd:\1.txt');
reset (f);
for i:=1 to n do
readln (f, diplom[i].tema_rabot);
readln (f, diplom[i].mes);
readln (f, diplom[i].avtor);
readln (f, diplom[i].time);
close(f);
end;
begin
for i:=1 to n do
 for j:=n downto 2 do
 if diplom[j-1].mes>diplom[j].mes then
 x:=diplom[j-1];diplom[j-1]:=diplom[j];diplom[j]:=x;
 end;
 for i:=1 to n do
 write(diplom[i].tema_rabot,'   ',diplom[i].mes,'   ',diplom[i].avtor,'   ',diplom[i].time);
 writeln;
 end.
Добавлено через 52 минуты
неужели ни у кого нет светлых мыслей?

Добавлено через 11 часов 8 минут
помогите пожалуйста
Programming
Эксперт
39485 / 9562 / 3019
Регистрация: 12.04.2006
Сообщений: 41,671
Блог
01.06.2011, 08:51
Ответы с готовыми решениями:

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

Выполнить сортировку данных с помощью прямого включения
Разработать программу выполняющую следующие действия: 1.чтение данных(из файли или с клавиатуры); 2.выполнить сортировку данных с...

Сравнить сортировку Шелла и сортировку с помощью прямого включения
Хотел бы узнать как можно написать код который будет сравнивать сортировку Шелла и сортировка с помощью прямого включения на C++ builder6....

1
Почетный модератор
 Аватар для Puporev
64314 / 47610 / 32743
Регистрация: 18.05.2008
Сообщений: 115,168
01.06.2011, 13:13
Для чего у тебя месяц и время строки? Если ты будешь вводить названия месяцев, то и сортировка будет по алфавиту апрель, июнь, июль,..... январь.
Если это так нужно, то тогда нужно все не так писать. Вот по простому.
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
uses crt;
const max=20;
type index=1..max;
tablica=record
        mes: index;
        tema_rabot:string[60];
        avtor:string[40];
        time:index;
        end;
var diplom:array[index] of tablica;
    i:integer; j:integer;
    x: tablica;
    f:text;
    n:index;
begin
clrscr;
write ('ЋвЄг¤* ўў®¤Ёвм ¤***лҐ? 1-б Є«*ўЁ*вгал 2-Ё§ д*©«*');
readln (i);
If i=1 then
 begin
  writeln('vvedite kol-vo');readln(n);
  for j:=1 to n do
   begin
    writeln('Diplom ',j);
    with  diplom[j] do
     begin
      write('tema: ');readln(tema_rabot);
      repeat
      write('mesyac [1..12]: ');readln(mes);
      until mes in [1..12];
      write('familia: ');readln(avtor);
      repeat
      write('zatrachenoe vremya [1..10]: ');readln(time);
      until time in [1..10];
    end;
   end;
 end
else
 begin
  assign (f, 'd:\1.txt');
  reset (f);
  n:=1;
  while not eof(f) do
   begin
    readln (f, diplom[n].tema_rabot);
    readln (f, diplom[n].mes);
    readln (f, diplom[n].avtor);
    readln (f, diplom[n].time);
    n:=n+1;
   end;
  close(f);
 end;
for i:=1 to n-1 do
for j:=i+1 to n do
if diplom[i].mes>diplom[j].mes then
 begin
  x:=diplom[i];
  diplom[i]:=diplom[j];
  diplom[j]:=x;
 end;
for i:=1 to n do
writeln(diplom[i].tema_rabot,'   ',diplom[i].mes,'   ',diplom[i].avtor,'   ',diplom[i].time);
readln
end.
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
inter-admin
Эксперт
29715 / 6470 / 2152
Регистрация: 06.03.2009
Сообщений: 28,500
Блог
01.06.2011, 13:13
Помогаю со студенческими работами здесь

Выполнить расчеты и вывести результаты на экран через окно сообщений
В течение 6-ти дней (рабочая неделя) рабочий изготавливает детали 7-ми различных типов. Известно количество изготовленных им деталей за...

Выполнить пузырьковую сортировку массива по возрастанию и вывести исходный массив обработанный на экран
Выполнить пузырьковую сортировку массива по возрастанию и вывести исходный массив обработанный на экран.

В одномерном массиве с помощью прямого обмена сортировать четные элементы
В одномерном массиве с помощью прямого обмена сортировать четные элементы. В общем, эта программа выдает уже отсортированный массив....

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

Требуется скопировать данные из одного файла в другой, но в обратном порядке. Вывести на экран все результаты
Задание: Требуется скопировать данные из одного файла в другой, но в обратном порядке. Вывести на экран все результаты. Условие:...


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

Или воспользуйтесь поиском по форуму:
2
Ответ Создать тему
Новые блоги и статьи
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
Фото: Daniel Greenwood
kumehtar 13.11.2025
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru