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

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

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

> Помогите, пожалуйста, решить задачу с обработкой массивов типа "запись"..., 3
Snake
сообщение 8.06.2007 9:50
Сообщение #1


Гость






Помогите написать программу!

3. Подготовить файл с анкетными данными своих ближайших pодственников. Анкетные данные должны содеpжать:
- фамилию, имя, отчество
- степень pодства (мать, отец, брат, сестpа и т.д.)
- гоpод пpоживания
- год pождения
- социальное положение
Сфоpмиpовать новый файл, содеpжащий сведения о родственниках-пенсионеpах. Входные данные после записи их в файл при дальнейшем решении задачи считывать из файла. Решить с использованием процедур и функций и типом "запись". С записями использовать оператор with

Заранее огромное Вам спасибо!!!

Сообщение отредактировано: Snake - 8.06.2007 13:48
 К началу страницы 
+ Ответить 
 
 Ответить  Открыть новую тему 
Ответов(1 - 12)
Артемий
сообщение 8.06.2007 9:56
Сообщение #2


Помощник капитана
****

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

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


Показывай что пробовал делать.


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 8.06.2007 12:05
Сообщение #3


Бывалый
***

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

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


Ну тут ,как по заданию видно,надо использовать неоднородные структуры данных,типа запись (record).
У тебя будет 1 тип записей,и 1 массив :
 
const
n=10;
nowyear=2007;
BlijRods= record
FIO:string;
rods:string;
Hometown:string;
yofb:integer;
SocP:string;
Age:byte;
Flg:byte; {флаг,если 1 то пенсионер,если 0 то нет}
end;
Arr = array [1..n] of BlijRods;


После ввода делаешь цикл отбора пенсионеров(для начала,вычисли возрасткаждого из родственников),что-то типа
 for i:=1 to n do
begin
arr[i].Age:=nowyear-yofb;
end;


После отбирай пенсионеров, что-то вроде этого :

for i:=1 to n do
begin
if arr[i].Age>60 then
arr[i].Flg:=1
else
arr[i].Flg:=0;
end;

ну и вот ты теперь знаешь,кто пенсионер ,а кто нет.записывай в файл по условию

 for i:=1 to n do
begin
if arr[i].Flg=1 then {Тут !!процедура!!(напиши сам) записи в файл}


Я бы так сделал..может это и не очень оптимальный вариант..

Сообщение отредактировано: Andrewshkovskii - 8.06.2007 12:10
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
volvo
сообщение 8.06.2007 12:12
Сообщение #4


Гость






Цитата
может это и не очень оптимальный вариант..
Это очень неоптимальный вариант... Мало того, что ты модифицировал запись (т.е., она теперь содержит лишнюю информацию, по условию флага и поля Age в записи не предусмотрено), так ты еще и проходишь по массиву (кстати, почему по массиву? Задание на работу с файлами) дважды. Зачем? Что, нельзя при проходе сразу проверить разность текущего года и года рождения, и при необходимости записать данные в другой файл?
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 8.06.2007 12:20
Сообщение #5


Бывалый
***

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

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


Цитата
так ты еще и проходишь по массиву (кстати, почему по массиву? Задание на работу с файлами) дважды. Зачем?

А как иначе,если у него несколько родственников?сразу Записывать каждую структуру отдельно в файл???
Конечно,ты прав,можно и обойтись без 2х дополнительный элементов(флаг и возраст)а сразу проверять их возраст и записывать в файл, вот так :
 if (a[i].yofb-nowyear)>60 then

 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Snake
сообщение 8.06.2007 12:52
Сообщение #6


Гость






Цитата(Andrewshkovskii @ 8.06.2007 13:05) *

Код
if arr[i].Flg=1 then {Тут !!процедура!!(напиши сам) записи в файл}



Еще бы знать что-то о Паскале )) Я не "сам", я - "сама" rolleyes.gif
Неужели нет каких-нибудь уже готовых похожих программ где-нибудь?!
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 8.06.2007 12:58
Сообщение #7


Бывалый
***

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

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


нормально так.....А где ты получила это задание?в институте?Тебе надо эту программу сдать и всё?не защищать,ничего?Оо
похожие может и есть,только искать долго...
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Snake
сообщение 8.06.2007 13:19
Сообщение #8


Гость






Цитата(Andrewshkovskii @ 8.06.2007 13:58) *

нормально так.....А где ты получила это задание?в институте?Тебе надо эту программу сдать и всё?не защищать,ничего?Оо
похожие может и есть,только искать долго...


В универе дали. Целых три задачи! Сдать надо. Защищать, я надеюсь, не заставят... unsure.gif
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 8.06.2007 13:22
Сообщение #9


Бывалый
***

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

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


блин..ну вам же читают лекции..и я думаю что это не первая задача на паскале..надо что-то знать..а писать за тебя ВСЮ задачу я думаю,мало кто захочет (а студенты,у кот. сейчас сессия темболее)...
Я попытался описать основной алгоритм,осталоное проше некуда,запись и чтения из файлов,да осуществить ввод данных(не забываю про проверку вводимых значений.. )
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Snake
сообщение 8.06.2007 13:33
Сообщение #10


Гость






Andrewshkovskii

В любом случае спасибо за помощь!!! Будем пытаться что-нибудь делать дальше! give_rose.gif
 К началу страницы 
+ Ответить 
klem4
сообщение 8.06.2007 13:42
Сообщение #11


Perl. Just code it!
******

Группа: Модераторы
Сообщений: 4 100
Пол: Мужской
Реальное имя: Андрей

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


М
1. Заголовок темы должен быть информативным. В противном случае тема удаляется ...



--------------------
perl -e 'print for (map{chr(hex)}("4861707079204E6577205965617221"=~/(.{2})/g)), "\n";'
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Andrewshkovskii
сообщение 8.06.2007 13:43
Сообщение #12


Бывалый
***

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

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


в общем смотри,вводишь данные о родственниках,записываешь их в файл ,после чего ищешь пенсионеров,и записываешь их уже в другой файл.вроде тут все просто..
Напиши 4 процедуры,
1 Инициализирует файл с родственниками (создание файл,т.е ты указываешь путь и имя файла)
2 Запись родственников в созданный файл родственников.
3 инициализация файла с пенсионерами.
4 Запись пенсионеров в файл.
а да,забыл,ешё напиши процедуры на ввод данных и их вывод на экран..не забудь про проверку вводмых значений!

Сообщение отредактировано: Andrewshkovskii - 8.06.2007 13:46
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
Snake
сообщение 8.06.2007 13:50
Сообщение #13


Гость






Andrewshkovskii, пасиб

Сообщение отредактировано: Snake - 8.06.2007 13:51
 К началу страницы 
+ Ответить 

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

 



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