Форум программистов, компьютерный форум, киберфорум
QBasic
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.80/25: Рейтинг темы: голосов - 25, средняя оценка - 4.80
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18

Вывести: список сотрудников, возраст которых не менее K лет и не превышает L лет

17.05.2016, 16:22. Показов 4723. Ответов 10
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
20.Дан список N сотрудников с указанием фамилии, точной даты рождения, стажа работы и заработной платы. Вывести: список сотрудников, возраст которых не менее K лет и не превышает L лет, упорядоченный по алфавиту фамилий (в полном формате, с указанием всех данных по каждому сотруднику).
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.05.2016, 16:22
Ответы с готовыми решениями:

Вывести фамилии всех сотрудников, чей стаж работы не менее 3-х лет и возраст не более 25 лет
DELPHI HEILP Народ, спасайте, я тупой , как валенок в программировании , но надо сделать такую прогу. Дана таблица «Сотрудники»,...

Вывести на экран сотрудников мужского пола возраст которых выше 45 лет
Дан список сотрудников некой организации, вывести на экран сотрудников мужского пола возраст которых выше 45 лет. Исходные данные...

Работа с файлами: найти сотрудников, чей возраст старше 45 или стаж превышает 20 лет
работа с файлами поместить в файл n записей, содержащих сведения о сотрудниках: ФИО, год рождения, стаж работы. Найти сотрудников, чей...

10
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
18.05.2016, 09:14
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Программа проверена
Задайте число N (Оно в программе), а также числа K и L
(они тоже в программе).
программа считывает файл 1.txt, обрабатывает его и
заносит данные в файл 2.txt.

Вид записи в файле 1.txt:
Иванов, 11.05.1980, 22, 40000
Петров, (и тд. )
примечание:
Запятые ОБЯЗАТЕЛЬНЫ. Число пробелов любое...

QBasic/QuickBASIC
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
CLS
DIM God AS STRING
DIM Go0 AS STRING
CONST N = 3
 
TYPE A
   NM AS STRING * 20
   DR AS STRING * 10
   ST AS INTEGER
   ZP AS SINGLE
END TYPE
DIM M(1 TO N) AS A
 
OPEN "1.txt" FOR INPUT AS #1
OPEN "2.txt" FOR OUTPUT AS #2
 
K = 20
L = 40
Go0 = MID$(DATE$, 7, 4)
 
FOR i = 1 TO N
   INPUT #1, M(i).NM, M(i).DR, M(i).ST, M(i).ZP
NEXT i
 
FOR i = 1 TO N - 1
FOR j = i TO N
   IF M(i).NM > M(j).NM THEN
      SWAP M(i).NM, M(j).NM
      SWAP M(i).DR, M(j).DR
      SWAP M(i).ST, M(j).ST
      SWAP M(i).ZP, M(j).ZP
   END IF
NEXT j, i
 
FOR i = 1 TO N
   God = MID$(M(i).DR, 7, 4)
   x = VAL(Go0) - VAL(God)
   IF x >= K AND x <= L THEN
      PRINT #2, M(i).NM, M(i).DR, M(i).ST, M(i).ZP
   END IF
NEXT i
 
END
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
20.05.2016, 13:20  [ТС]
geh, программа не работает. Когда надо вводить фамилии?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
20.05.2016, 13:28
укыневноаглпдр
Вы задали величину N?
У меня в программе N=3 (это когда я производил отладку программы)
Поставьте свое число, например N=20 или 100
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
23.05.2016, 14:45  [ТС]
geh, добрый день, можете описать ход решение в форме комментария в программе, для защиты?)
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
23.05.2016, 17:18
Лучший ответ Сообщение было отмечено Памирыч как решение

Решение

Строки 6-11.
Вводится пользовательский тип данных
TYPE A * *
NM AS STRING * 20 - (фамилия и инициалы. Отведено 20 байт)
DR AS STRING * 10 - (дата рождения 10 байт) * *
ST AS INTEGER - (стаж)
ZP AS SINGLE - (заработная плата)
END TYPE
Строка 12
Объявляется массив М() для хранения наших данных
Строки 14-15
Открываются два файла. Один для чтения. Другой для записи.
Строки 17-18
K = 20 (минимальный возраст)
L = 40 (максимальный возраст)
Строка 19
Go0 = MID$(DATE$, 7, 4) - программа считывает на компьютере
текущую дату (функция DATE$), формат типа 22-05-2016.
Но поскольку день и месяц нам не нужны, то программа из этой
даты вытаскивает лишь год (последние 4 символа)
Строки 21-23
Программа считывает строки из файла #1 и заполняет
массив М()
Строки 25-33
Сортировка данных по алфавиту
Строки 35-41
1. Определяется год рождения (переменная God)
2. А также возраст x = VAL(Go0) - VAL(God)
(Go0 - текущий год (2016))
примечание: вообще говоря его можно было и не вычислять
а сразу ввести в программу. Но я показал как его можно вычислить.
3.
Происходит запись в файл. Вот строки кода
IF x >= K AND x <= L THEN * * *
PRINT #2, M(i).NM, M(i).DR, M(i).ST, M(i).ZP * *
END IF
В целом все. Будут вопросы - задавайте
Человек, который молчит. (Не спрашивает)
Либо знает все, либо - ничего...
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
24.05.2016, 15:00  [ТС]
geh, а можете написать так, чтобы при запуске программы надо было все данные ввести с клавиатуры?
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
24.05.2016, 15:26
укыневноаглпдр
Да. Это можно сделать. Но вы устанете вводить
эти данные с клавиатуры, либо собьетесь.
Понимаете, бейсик в этом случае заставит все вводить
с самого начала...
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
24.05.2016, 18:03  [ТС]
geh, да, я понимаю, просто это нужно для защиты работы...
0
Регистрация: 23.10.2013
Сообщений: 5,076
Записей в блоге: 8
24.05.2016, 18:46
1. Удалите в программе строку 14. Открывать файл для
чтения нам больше не понадобится.
2. Удалите строки 21-23. Там как раз идет чтение из файла.
а на их место поставьте прилагаемый ниже код. Это ручной
ввод данных.
3. Все. Больше ничего менять не надо.

QBasic/QuickBASIC
1
2
3
4
5
6
FOR i = 1 TO N
   INPUT "NAME"; M(i).NM
   INPUT "DEN POSHDENIA"; M(i).DR
   INPUT "STASH"; M(i).ST
   INPUT "ZARPLATA"; M(i).ZP
NEXT i
0
0 / 0 / 0
Регистрация: 04.10.2015
Сообщений: 18
25.05.2016, 19:34  [ТС]
geh, огромное спасибо
0
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
25.05.2016, 19:34
Помогаю со студенческими работами здесь

Вывести список работников, стаж работы которых превышает заданное число лет
Работник: ФИО, должность, стаж, Зарплата. Вывести: а) список работников, стаж работы которых превышает заданное число лет б) список...

Структура Worker, вывести список работников,стаж работы которых превышает заданное число лет
Помогите ,написать программу,пожалуйста! worker: Фамилия и инициалы,должность,год поступления на работу,зарплата,создать массив...

Список абитуриентов, сдавших вступительные экзамены на оценки 4 и 5 и возраст менее 20 лет
Привет всем!Помогите сделать такую вот задачку: написать с помощью файлового типа данных список абитуриентов, сдавших вступительные...

Дан список сотрудников: фамилия, возраст, должность, оклад. Оставить в списке только тех, кто не достиг возраста 60 лет.
Пожалуйста помогите решить задачи в паскаль вот одна из них. Дан список сотрудников: фамилия, возраст, должность, оклад. Оставить в...

Найти среднюю стоимость автомобилей, "возраст" которых превышает 6 лет
Известны стоимость и &quot;возраст&quot; каждой из 20-ти моделей легковых автомобилей. Найти среднюю стоимость автомобилей, &quot;возраст&quot;...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
11
Ответ Создать тему
Новые блоги и статьи
PhpStorm 2025.3: WSL Terminal всегда стартует в ~
and_y87 14.12.2025
PhpStorm 2025. 3: WSL Terminal всегда стартует в ~ (home), игнорируя директорию проекта Симптом: После обновления до PhpStorm 2025. 3 встроенный терминал WSL открывается в домашней директории. . .
Access
VikBal 11.12.2025
Помогите пожалуйста !! Как объединить 2 одинаковые БД Access с разными данными.
Новый ноутбук
volvo 07.12.2025
Всем привет. По скидке в "черную пятницу" взял себе новый ноутбук Lenovo ThinkBook 16 G7 на Амазоне: Ryzen 5 7533HS 64 Gb DDR5 1Tb NVMe 16" Full HD Display Win11 Pro
Музыка, написанная Искусственным Интеллектом
volvo 04.12.2025
Всем привет. Некоторое время назад меня заинтересовало, что уже умеет ИИ в плане написания музыки для песен, и, собственно, исполнения этих самых песен. Стихов у нас много, уже вышли 4 книги, еще 3. . .
От async/await к виртуальным потокам в Python
IndentationError 23.11.2025
Армин Ронахер поставил под сомнение async/ await. Создатель Flask заявляет: цветные функции - провал, виртуальные потоки - решение. Не threading-динозавры, а новое поколение лёгких потоков. Откат?. . .
Поиск "дружественных имён" СОМ портов
Argus19 22.11.2025
Поиск "дружественных имён" СОМ портов На странице: https:/ / norseev. ru/ 2018/ 01/ 04/ comportlist_windows/ нашёл схожую тему. Там приведён код на С++, который показывает только имена СОМ портов, типа,. . .
Сколько Государство потратило денег на меня, обеспечивая инсулином.
Programma_Boinc 20.11.2025
Сколько Государство потратило денег на меня, обеспечивая инсулином. Вот решила сделать интересный приблизительный подсчет, сколько государство потратило на меня денег на покупку инсулинов. . . .
Ломающие изменения в C#.NStar Alpha
Etyuhibosecyu 20.11.2025
Уже можно не только тестировать, но и пользоваться C#. NStar - писать оконные приложения, содержащие надписи, кнопки, текстовые поля и даже изображения, например, моя игра "Три в ряд" написана на этом. . .
Мысли в слух
kumehtar 18.11.2025
Кстати, совсем недавно имел разговор на тему медитаций с людьми. И обнаружил, что они вообще не понимают что такое медитация и зачем она нужна. Самые базовые вещи. Для них это - когда просто люди. . .
Создание Single Page Application на фреймах
krapotkin 16.11.2025
Статья исключительно для начинающих. Подходы оригинальностью не блещут. В век Веб все очень привыкли к дизайну Single-Page-Application . Быстренько разберем подход "на фреймах". Мы делаем одну. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru