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

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

21.05.2008, 00:08. Показов 1215. Ответов 4
Метки нет (Все метки)

Дан массив из восьми строк. В строке "фамилия студента_оценка1_оценка2". Приписать к каждой строке средний балл. отсортировать по убыванию балла и распечатать.

Задачу нужно решить без функций и процедур. Помогите разобраться и решить эту задачу плиз?

Добавлено через 59 минут
Вот мой код, тут вводяться элементы матрицы, и выводятся без всяких изменений. Нужно чтобы он складывал число после первой "_" с числом после второй "_" и сумму делил на 2 и после отсортировал по убыванию. Какие нужно использовать команды и как это всё осуществить подскажите плиз?
Pascal
1
2
3
4
5
6
7
8
9
10
11
12
program sdfer;
var q:array[1..30,1..8] of string;j,i:integer;
begin
writeln('vvod strok:');
for j:=1 to 8 do
begin
readln(q[i,j])
end;
writeln('matrix:');
for j := 1 to 8 do writeln(q[i, j]);
writeln;
end.
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
21.05.2008, 00:08
Ответы с готовыми решениями:

Двумерный массив.Дан массив 5 х 5. Определить сумму элементов тех строк, где диагональный элемент равен нулю и записать их в отдельный массив.
помогите составить программу. во задание:Дан массив 5 х 5. Определить сумму элементов тех строк,...

Дан массив А (8,5). Распечатать элементы строк, первый элемент в которых больше среднего арифметического строк
Помогите написать блок-схему программы пожалуйста. Дан массив А (8,5). Распечатать элементы...

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

Дан массив строк. Упорядочить массив по длине строк
Дан массив строк. Упорядочить массив по длине строк на

4
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
21.05.2008, 13:08 2
Алгоритм решения задачи такой:
В одном цикле:
1. Вводим 8 фамилий с двумя оценками по правилу:фамилия, пробел, оценка(1 цифра), пробел, оценка(1 цифра).
2. преобразуем символ после первого пробела в число.
3. преобразуем последний символ в число.
4. вычисляемсреднее.
5. преобразуем среднее в строку.
6.создаем новую строку=старая строка+' среднее'+значение среднего.
7. выводим на экран
Конец цикла.
Все перепиши аккуратно и правильно вводи, чтоб без претензий.
На Паскале пишется это так:
Код
[FONT='Courier New CYR'][SIZE=3]uses crt;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]const n=2;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]var s:array[1..n]of string;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]    s1:array[1..20]of string;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]    i,t,q,c:integer;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]    sr:real;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]    st:string;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]begin[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]clrscr;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]for i:=1 to n do[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]   begin[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]    write('s[',i,']:');{primer vvoda Popov 5 3}[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]    readln(s[i]);[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]   end;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]for i:=1 to n do[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]    begin[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]     val(copy(s[i],pos(' ',s[i])+1,1),t,c);[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]     val(s[i][length(s[i])],q,c);[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]     sr:=(t+q)/2;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]     str(sr:4:1,st);[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]     s1[i]:=s1[i]+s[i]+' srednee='+st;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]     writeln(s1[i]);[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]    end;[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]readln[/SIZE][/FONT]
[FONT='Courier New CYR'][SIZE=3]end.[/SIZE][/FONT]
0
0 / 0 / 0
Регистрация: 18.05.2008
Сообщений: 21
21.05.2008, 20:38  [ТС] 3
Спасибо большое, работает, но как это всё отсортировать по убыванию?
0
Почетный модератор
64276 / 47575 / 32739
Регистрация: 18.05.2008
Сообщений: 115,182
21.05.2008, 20:43 4
Что-то недоглядел про сортировку. Делается она как любая сортировка массива, только не по всему значению строки, а по трем последним символам.
Вот отремонтированный код.
Код
 
[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]
[/FONT]
0
0 / 0 / 0
Регистрация: 18.05.2008
Сообщений: 21
22.05.2008, 22:18  [ТС] 5
Puporev ты гений!!
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
22.05.2008, 22:18
Помогаю со студенческими работами здесь

Дан массив строк, найти количество строк, которые содержат свою длину в виде числа
Народ очень прошу. Может кто-нибудь написать алгоритм нахождения кол-во строк ? Я знаю, что нужно...

Дан двухмерный массив из 15 строк. Вставить в него строку из нулей после всех строк, номер которых кратен трем
Дан двухмерный массив из 15 строк. Вставить в него строку из нулей после всех строк, номер которых...

Дан целый массив из 5 строк и 3 столбцов.Упорядочить массив по возрастанию
Дан целый массив из 5 строк и 3 столбцов.Упорядочить массив по возрастанию элементов первого...

Дан массив M(n,k). Переписать в одномерный массив элементы всех строк, в которых есть нулевой элемент.
Дан массив M(n,k). Переписать в одномерный массив элементы всех строк, в которых есть нулевой...


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

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

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