IPB
ЛогинПароль:

> Прочтите прежде чем задавать вопрос!

1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...
2. Все тексты программ должны помещаться в теги [code=pas] ... [/code].
3. Прежде чем задавать вопрос, см. "FAQ", если там не нашли ответа, воспользуйтесь ПОИСКОМ, возможно такую задачу уже решали!
4. Не предлагайте свои решения на других языках, кроме Паскаля (исключение - только с согласия модератора).
5. НЕ используйте форум для личного общения, все что не относится к обсуждению темы - на PM!
6. Одна тема - один вопрос (задача)
7. Проверяйте программы перед тем, как разместить их на форуме!!!
8. Спрашивайте и отвечайте четко и по существу!!!

> Записи. Ввод информации и печать определённых данных
Гость
сообщение 6.05.2007 13:47
Сообщение #1


Гость






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

Для решения нужно использовать записи и оператор присоединения.

FAQ смотрел, но т.к. там только основа, то не разобрался. Как объявить - понятно. Как ввести информацию тоже понятно, но как оперировать ими в теле программы не очень понятно. Помогите кодом пожалуйста
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов
samec
сообщение 10.05.2007 14:30
Сообщение #2


Бывалый
***

Группа: Пользователи
Сообщений: 180
Пол: Мужской
Реальное имя: Юра

Репутация: -  1  +


вот:

program page126num15a;

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[i] do begin
writeln('Студент N ',i);
writeln('Имя : ');
readln(name);
writeln('Возраст: ');
readln (age);
writeln('Курс: ');
readln (kurs);
writeln('Введите пол (m/w): ');
readln ©;
case c of
'm':sex:=m; {вот тут я не понял, почему ты писал 'm':x.sex:=m;}
'w':sex:=w {'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[i] do
case sex of
m:inc(kur[kurs,1]);
w:inc(kur[kurs,2]);
end;

max:=0; {сдесь небольшие дороботачки}
temp:=0;
for i:=1 to 5 do
if (kur[i,1]>0) then
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('На ',max,'-ом курсе наибольший процент мужчин');
end;

begin
input(base);
percent(base);
readln
end.



Сообщение отредактировано: samec - 10.05.2007 15:02
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

Сообщений в этой теме


 Ответить  Открыть новую тему 
1 чел. читают эту тему (гостей: 1, скрытых пользователей: 0)
Пользователей: 0

 



- Текстовая версия 25.06.2025 3:20
Хостинг предоставлен компанией "Веб Сервис Центр" при поддержке компании "ДокЛаб"