Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > Delphi программирование > Паскаль, Turbo Pascal, PascalABC.NET
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 20.05.2009, 21:31   #11
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
О каждом ученике известно: фамилия, номер школы и пять ответов на задачи.
Лучше создайте тип "ученик" с указанными полями.
А потом массив из учеников.
Через кучу массивов такие задачи не делаются.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 21.05.2009, 16:45   #12
Альбиша
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 20
По умолчанию

Как это записывается? Напишите пожалуйста((
Просто я тупая в этом...

Последний раз редактировалось Альбиша; 21.05.2009 в 16:47.
Альбиша вне форума Ответить с цитированием
Старый 21.05.2009, 17:25   #13
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Вот такая запись:
Код:
type uchenik = record
fam : string;
number : integer;
otvety : array[1..5] of string;
end;
И будет массив учеников
Код:
mas : array[1..200] of uchenik;
Ну и по школам, что-то вроде:
Код:
school1,school2,school3 : array[1..100] of uchenik;
Если школ много, то можно сделать массив школ.

Ну вот дальше так и работать..
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 21.05.2009, 18:01   #14
Альбиша
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 20
По умолчанию

Спасибо, попробую разобраться!
Альбиша вне форума Ответить с цитированием
Старый 24.05.2009, 21:17   #15
Альбиша
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 20
По умолчанию

Помоги пожалуйста дописать программку((( Нужно просто добавить сортировку "Составить списки учеников по школам, расположив в каждом списке фамилии в порядке убывания количества решенных задач. Предусмотреть возможный ответ "не решил"
Код:
program Test1;
{$APPTYPE CONSOLE}
uses
  SysUtils;

Const
n=200; // кол-во учеников всего
N_School=6; // кол-во школ
N_Answer=5; // кол-во задач
Type
  TLastName = array [1..n] of string; // тип списка фaмилий (15 символов для фамилии маловато :))
  TSchool = array [1..n] of byte; // тип списка школ
  TSolve = array [1..n] of byte; // тип кол-ва решенных задач
  TAnswer = array [1..N_Answer] of byte; // тип списка ответов
Var
  ScNum : array [1..N_School] of byte = (1,4,5,6,8,9); //номера школ
  ListName: TLastName; //список фaмилий
  ListSchool: TSchool; //список номеров школ
  ListAnswer: array [1..n] of TAnswer; //список ответов учеников
  CorrectAnswer:TAnswer; //правильные ответы
  TestSorted: array [1..N_School] of TSolve; //кол-во решенных задач учеников
  NameSorted: array [1..N_School] of TLastName; //список фамилий учеников школы
  CountName: array [1..N_School] of byte; //кол-во учеников школы
  Ianswer, Indx, ISch: byte;
  Begin
  { TODO -oUser -cConsole Main : Insert code here }
  Writeln('Введите 5 правильных ответов');
  For Ianswer:=1 to N_Answer do Readln(CorrectAnswer[Ianswer]);
  For Indx:=1 to n do begin // цикл по всем ученикам
  Writeln('Введите фамилию ученика'); Readln(ListName[Indx]);
  Writeln('Введите номер школы'); Readln(ListSchool[Indx]);
  Writeln('Введите ответы этого ученика');
  For Ianswer:=1 to N_Answer do Readln(ListAnswer[Indx,Ianswer]);
  end; // конец цикла по всем ученикам
  For ISch:= 1 to N_School do begin // обнуление количества учеников и количества их правильных ответов по каждой школе
  CountName[ISch] :=0;
  For Indx:=1 to N_Answer do TestSorted[ISch,Indx] :=0;
  end;
  For Indx:=1 to n do
  For ISch:= 1 to N_School do
  if ListSchool[Indx] = ScNum[ISch] then begin
  CountName[ISch] := CountName[ISch] +1;
  NameSorted[ISch, CountName[ISch]] := ListName[Indx];
  For Ianswer:=1 to N_Answer do
  if ListAnswer[Indx,Ianswer] = CorrectAnswer[Ianswer] then
  TestSorted[ISch, CountName[ISch]] := TestSorted[ISch, CountName[ISch]] + 1;

  end;
  (*
  здесь сортировка массивов NameSorted и TestSorted
  *)
end.
Альбиша вне форума Ответить с цитированием
Старый 24.05.2009, 21:38   #16
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Опять вы через кучу массивов делаете?
Вот это вообще непонятно:
Код:
 NameSorted: array [1..N_School] of TLastName; //список фамилий учеников школы
У вас, получается, двумерный массив строк. Зачем? Для чего?
Тем более вам нужно сортировать по количеству решенных задач.
Я же сказал, сделайте запись "ученик".
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 24.05.2009, 21:46   #17
Альбиша
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 20
По умолчанию

Да не могу я
Я вообще 0 просто. А помочь некому(((
Альбиша вне форума Ответить с цитированием
Старый 24.05.2009, 21:51   #18
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Пост #13 посмотрите.
Могу сказать, что сортировать то, что вы написали, будет сложнее и муторнее, чем сортировать массив записей.

И не нужно себя принижать. Раз что-то написали, значит уже не ноль.

Цитата:
Да не могу я
Кстати, почему не можете? Через кучу массивов же смогли. А через массив записей будет легче.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Старый 24.05.2009, 21:54   #19
Альбиша
Пользователь
 
Регистрация: 13.12.2008
Сообщений: 20
По умолчанию

Ну я могу написать только начало((( Создать тип ученик, а вот дальше...
Альбиша вне форума Ответить с цитированием
Старый 24.05.2009, 21:59   #20
Sazary
В тени
Старожил
 
Аватар для Sazary
 
Регистрация: 19.12.2008
Сообщений: 5,788
По умолчанию

Цитата:
Сообщение от Альбиша
Ну я могу написать только начало((( Создать тип ученик, а вот дальше...
Создайте массив учеников. Заполните его данными.
А дальше по заданию.

Проходите по этому глобальному массиву и разбрасываете учеников по школам (то есть, например, есть 3 школы. Значит нужно объявить еще 3 массива учеников).
А потом сортируете каждый массив (школу) по количеству решенных задач.
Вполне очевидно, чтобы что-то понять, необходимо книги читать.
Не нужно плодить бессмысленных тем. Вас Поиск избавит от многих проблем.

___________________________________ ___________________________________ _______
[=Правила форума=]_____[Поиск]_____[Литература по С++]____[Литература. Паскаль]
Sazary вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Задача на линейные списки Ser Паскаль, Turbo Pascal, PascalABC.NET 8 06.05.2011 20:22
задача на структурированые списки innaa639 Помощь студентам 9 03.03.2009 02:19