Дан массив из восьми строк - Pascal

Узнай цену своей работы

Формулировка задачи:

Дан массив из восьми строк. В строке "фамилия студента_оценка1_оценка2". Приписать к каждой строке средний балл. отсортировать по убыванию балла и распечатать. Задачу нужно решить без функций и процедур. Помогите разобраться и решить эту задачу плиз?
Добавлено через 59 минут
Вот мой код, тут вводяться элементы матрицы, и выводятся без всяких изменений. Нужно чтобы он складывал число после первой "_" с числом после второй "_" и сумму делил на 2 и после отсортировал по убыванию. Какие нужно использовать команды и как это всё осуществить подскажите плиз?

Решение задачи: «Дан массив из восьми строк»

textual
Листинг программы
[FONT='Courier New CYR']uses crt;
[FONT='Courier New CYR']const n=8;[/FONT]
[FONT='Courier New CYR']var s:array[1..n]of string;[/FONT]
[FONT='Courier New CYR']    s1:array[1..20]of string;[/FONT]
[FONT='Courier New CYR']    i,t,q,c,j:integer;[/FONT]
[FONT='Courier New CYR']    sr:real;[/FONT]
[FONT='Courier New CYR']    st,x:string;[/FONT]
[FONT='Courier New CYR']begin[/FONT]
[FONT='Courier New CYR']clrscr;[/FONT]
[FONT='Courier New CYR']for i:=1 to n do[/FONT]
[FONT='Courier New CYR']   begin[/FONT]
[FONT='Courier New CYR']    write('s[',i,']:');{primer vvoda Popov 5 3}[/FONT]
[FONT='Courier New CYR']    readln(s[i]);[/FONT]
[FONT='Courier New CYR']   end;[/FONT]
[FONT='Courier New CYR']writeln;[/FONT]
[FONT='Courier New CYR']writeln('Ishodnyj spisok:');[/FONT]
[FONT='Courier New CYR']for i:=1 to n do[/FONT]
[FONT='Courier New CYR']    begin[/FONT]
[FONT='Courier New CYR']     val(copy(s[i],pos(' ',s[i])+1,1),t,c);[/FONT]
[FONT='Courier New CYR']     val(s[i][length(s[i])],q,c);[/FONT]
[FONT='Courier New CYR']     sr:=(t+q)/2;[/FONT]
[FONT='Courier New CYR']     str(sr:4:1,st);[/FONT]
[FONT='Courier New CYR']     s1[i]:=s1[i]+s[i]+' srednee='+st;[/FONT]
[FONT='Courier New CYR']     writeln(s1[i]);[/FONT]
[FONT='Courier New CYR']    end;[/FONT]
[FONT='Courier New CYR']writeln;[/FONT]
[FONT='Courier New CYR']writeln('Otsortirovannyj spisok:');[/FONT]
[FONT='Courier New CYR']for i:=1 to n-1 do[/FONT]
[FONT='Courier New CYR']for j:=1 to n-1 do[/FONT]
[FONT='Courier New CYR']if copy(s1[j],length(s1[j])-2,3)<copy(s1[j+1],length(s1[j+1])-2,3)then[/FONT]
[FONT='Courier New CYR']   begin[/FONT]
[FONT='Courier New CYR']      x:=s1[j];[/FONT]
[FONT='Courier New CYR']      s1[j]:=s1[j+1];[/FONT]
[FONT='Courier New CYR']      s1[j+1]:=x;[/FONT]
[FONT='Courier New CYR']   end;[/FONT]
[FONT='Courier New CYR']for i:=1 to n do[/FONT]
[FONT='Courier New CYR']writeln(s1[i]);[/FONT]
[FONT='Courier New CYR']readln[/FONT]
[FONT='Courier New CYR']end.[/FONT]

Объяснение кода листинга программы

  1. Ввод данных о восьми строках
  2. Чтение данных в массив строк s
  3. Вывод введённых строк на экран
  4. Вычисление среднего значения для каждой строки
  5. Добавление к строке информации о среднем значении
  6. Вывод на экран информации о каждой строке
  7. Сортировка строк в порядке возрастания
  8. Вывод отсортированных строк на экран
  9. Запрос на ввод данных для завершения работы программы

Оцени полезность:

9   голосов , оценка 4.556 из 5
Похожие ответы