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

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

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

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


Гость






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

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

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

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


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

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

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


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


--------------------
Dum spiro spero!
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #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 -
 Оффлайн  Профиль  PM 
 К началу страницы 
+ Ответить 
сообщение
Сообщение #4


Гость






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


Бывалый
***

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

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


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

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

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


Гость






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

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



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


Бывалый
***

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

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


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


Гость






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

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


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


Бывалый
***

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

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


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


Гость






Andrewshkovskii

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


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

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

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


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



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


Бывалый
***

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

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


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

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


Гость






Andrewshkovskii, пасиб

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

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

 





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