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

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

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

 
 Ответить  Открыть новую тему 
> Записи, Задача описывающяя количество студентов с данными о них
сообщение
Сообщение #1


Новичок
*

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

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


Задача:
Составить структуру, содержащую информацию о студентах факультета: указав фамилию и год рождения, а также, если это мужчина, то сообщить, военнообязанный ли он, а если это женщина, то указать, замужем ли она, городские, иногородние, имеющие жилплощадь, нуждающиеся в общежитии. Определить количество студентов нуждающихся в общежитии.Я запутался как описать "да, нет" , "город , село" и как правельно вводить . Но все остальное вроде написал вот :

program laba ;
Type pol=(m,w);
people=record
fam:string[20];
imya:string[20];
godro:1900..2011;
mesto:gorod,selo; (вот тут как правельно описать "gorod,selo" и ниже тот же вопрос про да \нет)
obwejitie: da,net;
grupp: 101..103
case mw:pol of
m: ( voen: boolean);
w: ( merry: boolean);
end;

end;
var student: array [1..100] of people;
i,m,n: integer;
begin
writeln ('vvedite kol-vo studentov');
readln (n);
for i:=1 to n do
with people[i];
begin
writeln ('vvedite svediniya o', I , '-m studente');
writeln ('vvedite familiy');
readln тут незнаю как ввести правельно.
...

end;
writeln ('vvod zakonchen');
writeln ;
Выбираем тех кому нужна общага
for i:=1 to n do
if student[i].obwejitie=da then
m:=m+1;
writeln(' obwejitie nyshno: ',m);
end.

Зарание спасибо за помощь , реально не понимаю sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #2


Гость






Смотри:
program laba ;
type
// Сначала описываешь все типы, которые будешь использовать
// Можно и без этого обойтись, но нежелательно, потом будут проблемы
// с приведением типов.
pol = (m, f);
place = (gorod, selo);
yes_no = (da, net);

// Теперь твоя запись
people =
record
fam: string[20];
imya: string[20];
godro: 1900..2011;
mesto: place;
obwejitie: yes_no;
grupp: 101..103;
case mw:pol of
m: (voen: boolean);
f: (merry: boolean);
end; // Здесь достаточно только одного End, он закроет и Case и Record

var
student: array [1..100] of people;
i, n, count: integer; // Счетчик нельзя называть M, такое имя уже есть в описании pol
ans : integer;

begin
writeln ('vvedite kol-vo studentov');
readln (n);
for i:=1 to n do
with student[i] do // Идем по массиву student
begin
writeln ('vvedite svediniya o', I , '-m studente');
writeln ('vvedite familiy'); readln(fam);

// Место рождения: просим ввести число, обозначающее нужное место
// Потом это число преобразуем к типу Place
writeln ('mesto : (0 = gorod; 1 = selo)');
readln(ans); mesto := place(ans);

// Таким же образом вводим и информацию, нужно ли общежитие
// ... попробуй сделать это сам ...

// Все остальные поля
end;
writeln ('vvod zakonchen');
writeln ;

count := 0;
for i:=1 to n do
if student[i].obwejitie = da then count := count + 1;

writeln(' obwejitie nyshno: ', count);
end.
Форматируй код сразу, это поможет в дальнейшем не ошибаться кое-где, где без форматирования "лесенкой" ошибки будут наверняка...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #3


Новичок
*

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

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


Вот что вышло, но выдает ошибку на "case"

program laba ;
type

pol = (m, f);
place = (gorod, selo);
yes_no = (da, net);
people = record
fam: string[20];
imya: string[20];
godro: 1900..2011;
mesto: place;
obwejitie: yes_no;
grupp: 101..103;
case mw:pol of
m: (voen: boolean);
f: (merry: boolean);
end;

var
student: array [1..100] of people;
i, n, count: integer;
ans : integer;

begin
writeln ('vvedite kol-vo studentov');
readln (n);
for i:=1 to n do
with student[i] do
begin
writeln ('vvedite svediniya o', I , '-m studente');
writeln ('vvedite familiy');
readln(fam);
writeln ('vvedite imya');
readln(imya);
writeln ('vvedite god rozdeniya (1900-2011)');
readln(godro);
writeln ('mesto : (0 = gorod; 1 = selo)');
readln(ans); mesto := place(ans);
writeln ('obwejitie : (0 = nado; 1 = nenado)');
readln(ans);
obwejitie := yes_no(ans);
writeln ('pol : (0 = male; 1 = female)');
readln(ans);
obwejitie := pol(ans);
writeln ('vvedite group');
readln(grupp);
end;
writeln ('vvod zakonchen');
writeln ;

count := 0;
for i:=1 to n do
if student[i].obwejitie = da then count := count + 1;

writeln(' obwejitie nyshno: ', count);
end.
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






Не на Case у тебя ошибку должно выдавать. А на

Цитата
      writeln ('pol : (0 = male; 1 = female)');
readln(ans);
obwejitie := pol(ans); // Вот эту строку
writeln ('vvedite group');
readln(grupp);
Поле, где хранится пол студента, как называется у тебя: MW? Вот и пиши:

      mw := pol(ans); // Вот так вот
, тогда ошибок не будет...
 К началу страницы 
+ Ответить 
сообщение
Сообщение #5


Новичок
*

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

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


Не понял sad.gif
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #6


Новичок
*

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

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


Цитата(volvo @ 21.02.2011 13:37) *

Не на Case у тебя ошибку должно выдавать. А на

Поле, где хранится пол студента, как называется у тебя: MW? Вот и пиши:

      mw := pol(ans); // Вот так вот
, тогда ошибок не будет...

не могли бы вы подробнее обьснить пожалуйсто?
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 

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

 





- Текстовая версия 28.03.2024 17:51
500Gb HDD, 6Gb RAM, 2 Cores, 7 EUR в месяц — такие хостинги правда бывают
Связь с администрацией: bu_gen в домене octagram.name