Справочник функций

Ваш аккаунт

Войти через: 
Забыли пароль?
Регистрация
Информацию о новых материалах можно получать и без регистрации:

Почтовая рассылка

Подписчиков: -1
Последний выпуск: 19.06.2015

[Pascal] Записи. Ввод информации и печать определённых данных

13K
06 мая 2007 года
*alt
36 / / 12.04.2007
Задача
Сведения о студентах ВУЗа записаны в массиве и содержит следующую информацию: фамилия, имя отчество, пол (М или Ж), возраст (от 16 до 35), курс (от 1-го до 5-го). Напишите программу, которая вводит эту информацию и печатает следущие данные: номер курса, на котором наибольший процент мужчин.

Для решения нужно использовать записи и оператор присоединения.
13K
07 мая 2007 года
*alt
36 / / 12.04.2007
Как ввести пол? и как его привязать к курсу? помогите решением
622
07 мая 2007 года
nilbog
507 / / 19.12.2006
банально записи создаете
там и пол и курс храните
а потом поиск по двум элементам
а вводить пол - ну введите 'м' или 'ж'э ))
13K
08 мая 2007 года
*alt
36 / / 12.04.2007
Не, пусть у меня в записи поле sex(m,w); kak read производить. просто writeln('sex: '); readln(sex); не получится же(. и поиск с этим сексом мне не понятен.
622
08 мая 2007 года
nilbog
507 / / 19.12.2006
ну допустим такой вот тип
Код:
type B=(m,w);
A=record
           ----------
           sex:B;
           end;
var c:char; x:A
begin
read(c);
case c of
'm':x.sex:=m;
'w':x.sex:=w
end;
выводить тоже символьно - а проще наверно будет описать такие действия функциями
procedure outsex(x:B);
begin
case x of
m:write('m ');
w:write('w ')
end
end;
ну а поиск в таокм же ключе
while (i<n)and not f do
 begin i:=i+1; f:=y.sex=p  end {p - переменная типа B}

мораль - ввод вывод перечеслимых типов делается символьно
13K
10 мая 2007 года
*alt
36 / / 12.04.2007
Почему-то вылетает
Код:
uses
  SysUtils,
  windows;

const n=3;
type
  Tpol = (m,w);
  TRec = record
     name : string [31];
     age : 16..35;
     kurs : 1..5;
     sex : Tpol;
  end;

  TBase = array [1..n] of TRec; // База данных : информация о студентах.
var x:Trec;
    base : TBase;
procedure Input(var b : TBase); // ввод базы даннх
var
   i : integer;  c:char;
begin
  writeln('Ввод базы данных. ');
  for i := 1 to n do
    with b do begin
      writeln('Студент N ',i);
      writeln('Имя : ');
      readln(name);
      writeln('Возраст: ');
      readln (age);
      writeln('Курс: ');
      readln (kurs);
      writeln('Введите пол (m/w): ');
      readln (c);
      case c of
        'm':x.sex:=m;
        'w':x.sex:=w
      end;
      writeln;
    end;
end;
procedure percent(b : TBase);
var
   i,max : integer;
   kur:array[1..5,1..2] of integer;
   temp:real;
begin
  for i:=1 to 5 do
   begin
    kur[i,1]:=0;
    kur[i,2]:=0;
   end;
  for i := 1 to n do
    with b do
      case sex of
        m:inc(kur[b.kurs,1]);
        w:inc(kur[b.kurs,2]);
      end;
{!!!!!!!!!!Вот здесь!!!!!!!!!!!!!!!!}
 max:=1;
 temp:=0;
 temp:=100*kur[1,1]/(kur[1,1]+kur[1,2]);
 for i:=2 to 5 do
  if (100*kur[i,1]/(kur[i,1]+kur[i,2]))>temp then
   begin
    temp:=100*kur[i,1]/(kur[i,1]+kur[i,2]);
    max:=i;
   end;
 writeln('На ',i,'-ом курсе наибольший процент мужчин');
 readln;
end;


begin
  {обращение к русскому языку}
  setconsoleCp(1251);
  setconsoleOutputCp(1251);
  input(base);
  percent(base);
  readln
end.


Помогите. Что не правильно?
13K
11 мая 2007 года
*alt
36 / / 12.04.2007
Всё, не надо. Разобрался. Всем спасибо.
Реклама на сайте | Обмен ссылками | Ссылки | Экспорт (RSS) | Контакты
Добавить статью | Добавить исходник | Добавить хостинг-провайдера | Добавить сайт в каталог