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

Сортировка

14.02.2018, 18:51. Показов 451. Ответов 10

Author24 — интернет-сервис помощи студентам
Как отсортировать всю строку в одномерном массиве в pascal?. Например заданна таблица где выводит "обычную" и "повышенную" стипендию. В итоге чтобы получилось,что в выведенной таблице "повышенная" стояла выше обычной.
*повышенная это когда "4" больше чем "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
program lab5;
 
uses crt;
//----------------------//
type
  zap = record
    fio: string[40];
    mat: integer;
    fiz: integer;
    russ: integer;
    geo: integer;
    unf: integer;
    stp:string;
 
  end;
 
 
var
  s: array[1..25] of zap;
  i, n: integer;
  k2, k3,vsego, vsego1, vsego2: byte;
  k4: string;
  k:byte;
 
 
begin
  textcolor(0);
  textbackground(15);
  clrscr;
  write(' Введите кол-во студентов (не менее 10 человек) : ');
  readln(n);
  clrscr;
  for i := 1 to n do 
  begin
    write(i, ') Введите Ф.И.О студента ', ' : ');
    readln(s[i].fio);
    write(i, ') Введите Оценки по Программированию', ' : ');
    readln(s[i].mat);
    if (s[i].mat > 5) or (s[i].mat < 2) then
      repeat
        write(' Некорректный ввод данных : ');
        readln(s[i].mat);
      until (s[i].mat in [2..5]);
    write(i, ') Введите Оценки по физике ', ' : ');
    readln(s[i].fiz);
    if (s[i].fiz > 5) or (s[i].fiz < 2) then
      repeat
        write('  Некорректный ввод данных : ');
        readln(s[i].fiz);
      until (s[i].fiz in [2..5]);
    write(i, ') Введите Оценки по М.Д.К ', ' : ');
    readln(s[i].russ);
    if (s[i].russ > 5) or (s[i].russ < 2) then
      repeat
        write(' Некорректный ввод данных : ');
        readln(s[i].russ);
      until (s[i].russ in [2..5]);
    write(i, ') Введите Оценки по Выш. мат ', ' : ');
    readln(s[i].geo);
    if (s[i].geo > 5) or (s[i].geo < 2) then
      repeat
        write(' Некорректный ввод данных : ');
        readln(s[i].geo);
      until (s[i].geo in [2..5]);
    write(i, ') Введите Оценки по О.С ', ' : ');
    readln(s[i].unf);
    if (s[i].unf > 5) or (s[i].unf < 2) then
      repeat
        write(' Некорректный ввод данных : ');
        readln(s[i].unf);
      until (s[i].unf in [2..5]);
  end;
  clrscr;
  begin
    writeln('┌─────────────────────────────┬────────────────────────────────────────────┐');
    writeln('│                             │               Оценка по предмету.          │');
    writeln('│     Ф.И.О студента          ├────────┬───────┬────────┬─────────┬────────┤');
    writeln('│                             │  Прог. │  Физ. │  М.Д.К │ Выш.мат │   О.С  │');
    writeln('├─────────────────────────────┼────────┼───────┼────────┼─────────┼────────┤');
    for i := 1 to n do 
    begin
      writeln('│',  s[i].fio:28,    ' │', s[i].mat:7, ' │ ', s[i].fiz:5, ' │ ', s[i].russ:6, ' │ ', s[i].geo:7,  ' │ ', s[i].unf:7,  '│');
      writeln('├─────────────────────────────┼────────┼───────┼────────┼─────────┼────────┤');
    end;
    writeln('└─────────────────────────────┴────────┴───────┴────────┴─────────┴────────┘');
  end;
  writeln('┌─────────────────────────────┬────────────┬───────────┬───────────────┐');
  writeln('│     Ф.И.О  студента         │ Кол-во "4" │ Кол-во "5"│ Вид стипендии.│');
  writeln('├─────────────────────────────┼────────────┼───────────┼───────────────┤');
  for i := 1 to n do
  begin
    k3 := 0;
    k2 := 0;
    if s[i].mat = 4  then 
      k2 := k2 + 1;
    if s[i].fiz = 4 then 
      k2 := k2 + 1; 
    if s[i].russ = 4 then 
      k2 := k2 + 1;
    if s[i].geo = 4 then 
      k2 := k2 + 1;
    if s[i].unf = 4 then 
      k2 := k2 + 1;
    
    if s[i].mat = 5 then 
      k3 := k3 + 1;
    if s[i].fiz = 5 then 
      k3 := k3 + 1; 
    if s[i].russ = 5  then 
      k3 := k3 + 1;
    if s[i].geo = 5 then 
      k3 := k3 + 1;
    if s[i].unf = 5 then 
      k3 := k3 + 1;
 //вывод общей и повышенной стипендии//
 
    if k2 <= k3 then
      s[i].stp := 'Обычная'; 
    if k2 > k3 then 
      s[i].stp := 'Обычная';
    if k3 > k2 then 
     s[i].stp := 'Повышенная';
     
 
 
    writeln('│', s[i].fio:28,            ' │ ', k2:10, ' │', k3:10, ' │ ', s[i].stp:13, ' │');
    writeln('├─────────────────────────────┼────────────┼───────────┼───────────────┤');
  end;
  writeln('└─────────────────────────────┴────────────┴───────────┴───────────────┘');
  readkey;
end.
0
14.02.2018, 18:51
IT_Exp
Эксперт
34794 / 4073 / 2104
Регистрация: 17.06.2006
Сообщений: 32,602
Блог
14.02.2018, 18:51
Ответы с готовыми решениями:

Блок схема.Сортировка «Пузырьком», Сортировка методом «Последовательных перестановок», Сортировка «Вставками»
Помогите, нужны блок схемы Сортировка «Вставками» Program Vstavka; uses dos; Type mass=array of integer; Var i,b,n,j,a:...

1)Бинарный поиск 2)Сортировка включением 3)Шейкерная сортировка 4)Сортировка разделением
1)В заданном массиве К(N) найти индексы элементов, которые кратны минимальному значению элемента массива. 2)Задан массив AX (N). Добавить...

Сортировка массивов. Сортировка выбором
Помогите пожалуйста, я что-то совсем запуталась при составлении данной программы... Сортировка выбором. Дана последовательность чисел...

10
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
14.02.2018, 18:57 2
Цитата Сообщение от Ted333 Посмотреть сообщение
когда "4" больше чем "5"
А что, бывает и такое?
0
0 / 0 / 0
Регистрация: 26.10.2017
Сообщений: 16
14.02.2018, 20:55  [ТС] 3
мой косяк,когда количество "4" больше количества "5"
0
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
15.02.2018, 08:07 4
Все равно непонятно почему, если четверок больше чем пятерок, то стипендия повышенная, а если пятерок больше, то обычная.
0
0 / 0 / 0
Регистрация: 26.10.2017
Сообщений: 16
15.02.2018, 08:23  [ТС] 5
Наоборот,количество 5 больше чем количество 4
0
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
15.02.2018, 08:49 6
Цитата Сообщение от Ted333 Посмотреть сообщение
Как отсортировать всю строку
Нужно в записи ввести еще 2 поля, количество 5 и количество 4 и считать это для каждой записи при вводе
Сортировка, точнее перестановка с повышенной вперед.
Pascal
1
2
3
4
5
6
7
8
9
10
k:=0;//количество перестановок
for i:=1 to n do
if a[i].k5>a[i].k4 then
 begin
  k:=k+1;
  x:=a[i];//x переменная типа zap
  for j:=i downto k+1 do
  a[j]:=a[j-1];
  a[k]:=x;
 end;
0
0 / 0 / 0
Регистрация: 26.10.2017
Сообщений: 16
15.02.2018, 12:38  [ТС] 7
Pascal
1
 x:=a[i];
Нельзя преобразовать zap к integer
0
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
15.02.2018, 12:47 8
Смените a на s, у вас же массив s.

Добавлено через 37 секунд
А x:zap;
0
0 / 0 / 0
Регистрация: 26.10.2017
Сообщений: 16
15.02.2018, 13:32  [ТС] 9
Все сортирует,но выводит криво,что мы именно выводим в таблице ?
0
Почетный модератор
 Аватар для Puporev
64305 / 47602 / 32742
Регистрация: 18.05.2008
Сообщений: 115,181
15.02.2018, 13:41 10
Цитата Сообщение от Ted333 Посмотреть сообщение
что мы именно выводим в таблице ?
Так это Вы выводите, я то тут при чем? Что захотите, то и выведите.

Добавлено через 4 минуты
Я так понимаю что после сортировка выводится список где сначала идут с повышенный стипендией потом с обычной.
0
0 / 0 / 0
Регистрация: 26.10.2017
Сообщений: 16
15.02.2018, 13:54  [ТС] 11
Да,правильно
0
15.02.2018, 13:54
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
BasicMan
Эксперт
29316 / 5623 / 2384
Регистрация: 17.02.2009
Сообщений: 30,364
Блог
15.02.2018, 13:54
Помогаю со студенческими работами здесь

сортировка
Напишите пожалуйста процедуру сортировки пузырьком одномерного массива по убыванию элементов без самой программы

сортировка
В одномерном массиве упорядочить нечетные элементы, оставив четные на местах. Сортировка прямой выбор.

сортировка
Отсортировать строки массива целых чисел по убыванию. Шейкерная сортировка.

сортировка
в массиве хранятся информация о результате 22 спортсменов по бегу на 100 м определить 1,2 место Без помощи не справиться))) Заранее спасибо...

Сортировка
Помогите пожалуйста написать PAS файл. Не могу никак разобраться с сортировкой. &quot;Сортировка по возрастанию методом выбора...


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

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

Редактор формул (кликните на картинку в правом углу, чтобы закрыть)
Опции темы

Новые блоги и статьи
Ключевые слова Python
hw_wired 15.02.2025
Ключевые слова в Python - это специальные зарезервированные слова, которые имеют особое значение и функции в языке. В настоящее время Python включает 35 ключевых слов и 4 мягких ключевых слова. Эти. . .
Отличия изменяемых и неизменяемых типов в Python
hw_wired 15.02.2025
В Python существует принципиальное различие между изменяемыми (mutable) и неизменяемыми (immutable) типами данных, которое оказывает существенное влияние на работу программ. Это различие часто. . .
Python: сравнение списков и кортежей
hw_wired 15.02.2025
В Python последовательности являются одними из самых важных и часто используемых типов данных. Они позволяют хранить упорядоченные наборы элементов, к которым можно обращаться по индексу. Среди всех. . .
Как скачивать файлы с URL с помощью Python
hw_wired 15.02.2025
Для скачивания файлов Python предлагает как встроенные средства, так и сторонние библиотеки. Встроенный модуль urllib из стандартной библиотеки обеспечивает базовую функциональность для работы с URL. . .
Использование SQLAlchemy в Python
hw_wired 15.02.2025
SQLAlchemy - мощная библиотека для работы с базами данных в Python, которая предоставляет полноценный набор средств для объектно-реляционного отображения (ORM) и обширные возможности для работы с. . .
Взаимодействие с REST API в Python
hw_wired 15.02.2025
В современном мире разработки программного обеспечения REST API стал неотъемлемой частью архитектуры веб-приложений. API (Application Programming Interface) - это набор правил и протоколов,. . .
Разделение строк в Python
hw_wired 15.02.2025
Python предлагает богатый набор возможностей для работы со строками, и среди них разделение строк занимает особое место. Этот процесс позволяет разбивать текст на отдельные компоненты, что критично. . .
Объединение строк в Python
hw_wired 15.02.2025
При работе с текстовыми данными в Python нередко возникает необходимость объединять несколько строк в одну. Это может потребоваться при форматировании вывода, обработке текстовых файлов или создании. . .
Лучшие игровые движки на Python
hw_wired 15.02.2025
В последнее время разработка игр стала одним из самых популярных направлений программирования, и Python не остался в стороне от этого тренда. Несмотря на то, что Python обычно не ассоциируется с. . .
Декоратор jit в Python
hw_wired 15.02.2025
Если вы достаточно долго изучаете программы и пакеты на Python для машинного обучения, то наверняка замечали, что паттерн "JIT-декоратор" довольно популярен. Этот подход позволяет превратить обычные. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru