Актуально на
Оглавление
- Идея проекта
- Что понадобится
- Полный код на Turbo Pascal
- Как запустить
- Контакты для обращений и доработок
Идея проекта
Небольшая консольная программа, которая по заданной дате рождения определяет:
- Знак зодиака и китайский гороскоп
- Персональное предсказание на сегодня, сгенерированное на основе популярных астрологических источников, перечисленных в инструкции
Что понадобится
- Turbo Pascal 7.0 (или любой совместимый компилятор Free Pascal / Lazarus)
- Текстовый файл
predictions.txtс 12 строками предсказаний (по одной на каждый знак) - 5 минут времени

Полный код на Turbo Pascal
program ZodiacPrediction;
uses
SysUtils;
const
Signs: array[1..12] of string = (
'Козерог', 'Водолей', 'Рыбы',
'Овен', 'Телец', 'Близнецы',
'Рак', 'Лев', 'Дева',
'Весы', 'Скорпион', 'Стрелец');
Chinese: array[0..11] of string = (
'Крыса', 'Бык', 'Тигр',
'Кролик', 'Дракон', 'Змея',
'Лошадь', 'Коза', 'Обезьяна',
'Петух', 'Собака', 'Свинья');
type
TPrediction = array[1..12] of string;
var
Day, Month, Year: Word;
SignIdx, ChineseIdx: Integer;
Pred: TPrediction;
F: Text;
function GetSign(d, m: Word): Integer;
begin
if ((m = 1) and (d >= 20)) or ((m = 2) and (d <= 18)) then Result := 2 // Водолей
else if ((m = 2) and (d >= 19)) or ((m = 3) and (d <= 20)) then Result := 3 // Рыбы
else if ((m = 3) and (d >= 21)) or ((m = 4) and (d <= 19)) then Result := 4 // Овен
else if ((m = 4) and (d >= 20)) or ((m = 5) and (d <= 20)) then Result := 5 // Телец
else if ((m = 5) and (d >= 21)) or ((m = 6) and (d <= 20)) then Result := 6 // Близнецы
else if ((m = 6) and (d >= 21)) or ((m = 7) and (d <= 22)) then Result := 7 // Рак
else if ((m = 7) and (d >= 23)) or ((m = 8) and (d <= 22)) then Result := 8 // Лев
else if ((m = 8) and (d >= 23)) or ((m = 9) and (d <= 22)) then Result := 9 // Дева
else if ((m = 9) and (d >= 23)) or ((m = 10) and (d <= 22)) then Result := 10 // Весы
else if ((m = 10) and (d >= 23)) or ((m = 11) and (d <= 21)) then Result := 11 // Скорпион
else if ((m = 11) and (d >= 22)) or ((m = 12) and (d <= 21)) then Result := 12 // Стрелец
else Result := 1; // Козерог
end;
function GetChinese(y: Word): Integer;
begin
Result := (y ― 4) mod 12;
end;
procedure LoadPredictions;
var
i: Integer;
begin
Assign(F, 'predictions.txt');
{$I-}
Reset(F);
if IOResult <> 0 then
for i := 1 to 12 do
Pred[i] := 'Нет данных. Проверьте файл predictions.txt'
else
begin
for i := 1 to 12 do
ReadLn(F, Pred[i]);
Close(F);
end;
{$I+}
end;
begin
WriteLn('=== Знак Зодиака и Предсказание на день ===');
Write('Введите дату рождения (ДД ММ ГГГГ): ');
ReadLn(Day, Month, Year);
SignIdx := GetSign(Day, Month);
ChineseIdx := GetChinese(Year);
LoadPredictions;
WriteLn;
WriteLn('Ваш знак зодиака: ', Signs[SignIdx]);
WriteLn('Китайский гороскоп: ', Chinese[ChineseIdx]);
WriteLn('Предсказание на сегодня: ', Pred[SignIdx]);
WriteLn;
WriteLn('Спасибо, что воспользовались программой!');
ReadLn;
end.
Как запустить
- Сохраните код в файл
zodiac.pas - Создайте текстовый файл
predictions.txtв той же папке и добавьте 12 строк, например:
Овен: день принесёт новые идеи.
Телец: уделите внимание здоровью.
… - Скомпилируйте в Turbo Pascal/FPC:
fpc zodiac.pas - Запустите
zodiac.exe
Контакты для обращений и доработок
- Telegram-канал «Pascal & Astro»: https://t.me/pascalastro — задавайте вопросы, выкладывайте свои версии программы
- GitHub-репозиторий: github.com/yourname/zodiac-pascal, Pull Request’ы и Issue приветствуются
- E-mail: pascalastro@yandex.ru — для коммерческих заказов или расширенных функций (web-версия, база данных, интеграция с API предсказаний)
- Skype: live:pascalastro — оперативная техническая поддержка
Всегда рады помочь и совместно улучшить звёздное предсказание!