Написание программы паскаль знак зодиака предсказание на лень

Актуально на

Оглавление

  1. Идея проекта
  2. Что понадобится
  3. Полный код на Turbo Pascal
  4. Как запустить
  5. Контакты для обращений и доработок

Идея проекта

Небольшая консольная программа, которая по заданной дате рождения определяет:

  • Знак зодиака и китайский гороскоп
  • Персональное предсказание на сегодня, сгенерированное на основе популярных астрологических источников, перечисленных в инструкции

Что понадобится

  • 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.

Как запустить

  1. Сохраните код в файл zodiac.pas
  2. Создайте текстовый файл predictions.txt в той же папке и добавьте 12 строк, например:

    Овен: день принесёт новые идеи.
    Телец: уделите внимание здоровью.
    …
  3. Скомпилируйте в Turbo Pascal/FPC: fpc zodiac.pas
  4. Запустите 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 — оперативная техническая поддержка

Всегда рады помочь и совместно улучшить звёздное предсказание!