Дан массив из восьми строк - 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]
Объяснение кода листинга программы
- Ввод данных о восьми строках
- Чтение данных в массив строк s
- Вывод введённых строк на экран
- Вычисление среднего значения для каждой строки
- Добавление к строке информации о среднем значении
- Вывод на экран информации о каждой строке
- Сортировка строк в порядке возрастания
- Вывод отсортированных строк на экран
- Запрос на ввод данных для завершения работы программы