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

Сортировка паскаль авс нет

16.08.2019, 11:33. Показов 1136. Ответов 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
type S=Record
  FIO:String;
  GR:Word;
  GP:Word;
  
  O:Array[1..3] of Byte;
  End;
 Var a:Array[1..10] of S;
  i,j,n:Byte;
  SR:real;
  l:integer;
 Begin
   Write('Kolichrstvo students:');
   Readln(n);
   For i:=1 to n do
   begin
     Writeln('Student-',i);
     Write('Input FIO:');
     Readln(a[i].FIO);
     Write('Input god rogdenia:');
     Readln(a[i].GR);
     Write('Input god postuplenia:');
     Readln(a[i].GP);
     For j:=1 to 3 do
     begin
       Write('Input ',j,' ocenku:');
       Readln(a[i].O[j]);
     end;
 
   end;
   For i:=1 to n do 
   begin
     Write(a[i].FIO:30);
     Write(a[i].GR:8);
     Write(a[i].GP:8);
     begin
      L:=0;
      for j:=1 to 3 do
       begin
         L:=L+a[i].O[j];
       end;
       SR:=L/3;
     Writeln('  SR=',SR:5:2);
     end;
   end;
 end.
0
Лучшие ответы (1)
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
16.08.2019, 11:33
Ответы с готовыми решениями:

Не запускается паскаль АВС н ет
Добрый день. Сегодня столкнулся с такой проблеммой, что при нажатии на иконку ярлыка паскаль АБС...

Книга по Паскаль АВС.net
Посоветуйте хорошею книгу по паскалю .net чтоб было про параллельное программирование, OOП, про...

Не удается запустить простенькую программу в паскаль авс под Windows XP
сперва немного думает,затем выдает нижеследующее: что делать?

Комментарии в Паскаль АВС.
Подскажите что за команда //?? например //line (360,330,150,350); Как ей правильно...

5
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
16.08.2019, 12:46 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
type S=Record
     FIO:String;
     GR:Word;
     GP:Word;
     O:Array[1..3] of Byte;
     SB:real;
     End;
 Var a:Array[1..10] of S;
  i,j,n:Byte;
  x:S;
 Begin
Write('Kolichrstvo students:');
Readln(n);
For i:=1 to n do
 begin
     Writeln('Student-',i);
     Write('Input FIO:');
     Readln(a[i].FIO);
     Write('Input god rogdenia:');
     Readln(a[i].GR);
     Write('Input god postuplenia:');
     Readln(a[i].GP);
     a[i].SB:=0;
     For j:=1 to 3 do
      begin
       Write('Input ',j,' ocenku:');
       Readln(a[i].O[j]);
       a[i].SB:=a[i].SB/3;
     end;
end;
writeln('Несортированный список');
For i:=1 to n do
writeln(a[i].FIO:30,' ',a[i].GR:8,' ',a[i].GP:8,' ',a[i].SB:0:2);
writeln;
for i:=1 to n-1 do
for j:=i+1 to n do
if a[i].SB<a[j].SB then
 begin
  x:=a[i];
  a[i]:=a[j];
  a[j]:=x;
 end;
writeln('Отсортированный список');
For i:=1 to n do
writeln(a[i].FIO:30,' ',a[i].GR:8,' ',a[i].GP:8,' ',a[i].SB:0:2);
end.
1
2 / 2 / 0
Регистрация: 03.12.2018
Сообщений: 23
16.08.2019, 14:15  [ТС] 3
Puporev, я конечно туповастенький, но он средний бал выводит 0
0
Почетный модератор
64291 / 47589 / 32740
Регистрация: 18.05.2008
Сообщений: 115,181
16.08.2019, 14:20 4
Поторопился, неправильно написал, нужно
Pascal
1
a[i].SB:=a[i].SB+a[i].O[j]/3;
1
5065 / 2637 / 2348
Регистрация: 10.12.2014
Сообщений: 10,003
17.08.2019, 07:52 5
Лучший ответ Сообщение было отмечено Vlad keno как решение

Решение

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
type
  S = record
    FIO : String;
    GR, GP : Word;
    O : array of Integer;
    
    constructor (i : Integer);
    begin
      $'{i} студент:'.Println;
      FIO := ReadLnString  ('        Фамилия:');
      GR  := ReadLnInteger ('   Год рождения:');
      GP  := ReadLnInteger ('Год поступления:');
      SetLength(O, 3);
      (O[0],O[1],O[2]) := ReadLnInteger3('Три оценки через пробел:');
    end;
    
    public function ToString: string; override := Format('FIO:{0,-20}  GR:{1,4}  GP:{2,4}  <O>:{3:f1}', FIO, GR, GP, O.Average);
  end;
  
begin
  var n := ReadLnInteger('Количество студентов:');
  var L := New List<S>;
  for var i := 1 to n do
    L.Add(New S(i));
  WriteLn('Несортированный список:'); foreach var st in L do WriteLn(st);
  WriteLn('Отсортированный список:'); foreach var st in L.OrderBy(st->st.O.Average) do WriteLn(st);
end.
1
5065 / 2637 / 2348
Регистрация: 10.12.2014
Сообщений: 10,003
17.08.2019, 14:20 6
Последние две строки можно вот так:
Pascal
25
26
  WriteLn('Несортированный список:'); L.PrintLines;
  WriteLn('Отсортированный список:'); L.OrderBy(st->st.O.Average).PrintLines;
1
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
17.08.2019, 14:20
Помогаю со студенческими работами здесь

Цикл For в Паскаль АВС
составте программу, которая находит сумму квадратов чисел от 1 до 10.?? Заранее всем огромное...

одномерный массив..паскаль авс
училку в универе не устраивает ...она хочет чтоб эти 2 задачи выглядели проще ...помогите !!! ...

задача на массивы (паскаль авс)
Составьте программу, которая формирует массив из пятнадцати случайных целых чисел от -20 до 20 и...

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


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

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

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