Если вы когда-нибудь задумывались о том, чтобы создать собственную программу для расчёта гороскопа, язык Паскаль может стать отличным инструментом для начинающих. В этой статье мы подробно разберём, как написать простую астрологическую программу на Паскале, которая по дате рождения определит знак зодиака и выведет краткое описание.
Что такое астрологическая программа?
Астрологическая программа — это приложение, которое анализирует дату рождения пользователя и выводит информацию о его знаке зодиака, а также может включать дополнительные данные, такие как стихия, планета-покровитель или даже короткий гороскоп на день.
Почему Паскаль?
Язык Паскаль идеален для обучения программированию:
- Простой и понятный синтаксис
- Чёткая структура программы: начинается с
programи завершаетсяend. - Удобная работа с условиями, циклами и массивами
- Возможность использовать модули для структурирования кода
Структура программы
Астрологическая программа будет состоять из:
- Главного модуля
program AstroHoroscope; - Процедур для ввода даты и определения знака
- Массива с описаниями знаков зодиака
Шаг 1. Ввод даты рождения
Начнём с получения даты от пользователя. Используем типы integer для дня и месяца:
var day, month: integer;
Шаг 2. Определение знака зодиака
Используем условные операторы if или case для определения знака:
function GetZodiacSign(day, month: integer): string; begin case month of 1: if day <= 19 then Result := 'Козерог' else Result := 'Водолей'; 2: if day <= 18 then Result := 'Водолей' else Result := 'Рыбы'; 3: if day <= 20 then Result := 'Рыбы' else Result := 'Овен'; 4: if day <= 19 then Result := 'Овен' else Result := 'Телец'; 5: if day <= 20 then Result := 'Телец' else Result := 'Близнецы'; 6: if day <= 21 then Result := 'Близнецы' else Result := 'Рак'; 7: if day <= 22 then Result := 'Рак' else Result := 'Лев'; 8: if day <= 22 then Result := 'Лев' else Result := 'Дева'; 9: if day <= 22 then Result := 'Дева' else Result := 'Весы'; 10: if day <= 22 then Result := 'Весы' else Result := 'Скорпион'; 11: if day <= 21 then Result := 'Скорпион' else Result := 'Стрелец'; 12: if day <= 21 then Result := 'Стрелец' else Result := 'Козерог'; end; end;
Шаг 3. Добавление описаний
Создадим массив строк с краткими характеристиками каждого знака:
const Descriptions: array[1..12] of string = ( 'Козерог: дисциплинированный и целеустремлённый', 'Водолей: независимый и оригинальный', 'Рыбы: чувствительный и интуитивный', 'Овен: смелый и энергичный', 'Телец: надёжный и трудолюбивый', 'Близнецы: общительный и любознательный', 'Рак: заботливый и эмоциональный', 'Лев: харизматичный и щедрый', 'Дева: практичный и внимательный', 'Весы: дипломатичный и справедливый', 'Скорпион: решительный и страстный', 'Стрелец: оптимистичный и свободолюбивый' );
Шаг 4. Главный модуль программы
Теперь соберём всё вместе в главный модуль:
program AstroHoroscope;
uses crt;
var
day, month, signIndex: integer;
sign, desc: string;
function GetZodiacSign(day, month: integer): string;
begin
case month of
1: if day <= 19 then Result := 'Козерог' else Result := 'Водолей';
2: if day <= 18 then Result := 'Водолей' else Result := 'Рыбы';
3: if day <= 20 then Result := 'Рыбы' else Result := 'Овен';
4: if day <= 19 then Result := 'Овен' else Result := 'Телец';
5: if day <= 20 then Result := 'Телец' else Result := 'Близнецы';
6: if day <= 21 then Result := 'Близнецы' else Result := 'Рак';
7: if day <= 22 then Result := 'Рак' else Result := 'Лев';
8: if day <= 22 then Result := 'Лев' else Result := 'Дева';
9: if day <= 22 then Result := 'Дева' else Result := 'Весы';
10: if day <= 22 then Result := 'Весы' else Result := 'Скорпион';
11: if day <= 21 then Result := 'Скорпион' else Result := 'Стрелец';
12: if day <= 21 then Result := 'Стрелец' else Result := 'Козерог';
end;
end;
const
Descriptions: array[1..12] of string = (
'Козерог: дисциплинированный и целеустремлённый',
'Водолей: независимый и оригинальный',
'Рыбы: чувствительный и интуитивный',
'Овен: смелый и энергичный',
'Телец: надёжный и трудолюбивый',
'Близнецы: общительный и любознательный',
'Рак: заботливый и эмоциональный',
'Лев: харизматичный и щедрый',
'Дева: практичный и внимательный',
'Весы: дипломатичный и справедливый',
'Скорпион: решительный и страстный',
'Стрелец: оптимистичный и свободолюбивый'
);
begin
clrscr;
writeln('Введите день рождения:');
readln(day);
writeln('Введите месяц рождения (число от 1 до 12):');
readln(month);
sign := GetZodiacSign(day, month);
case sign of
'Козерог': signIndex := 1;
'Водолей': signIndex := 2;
'Рыбы': signIndex := 3;
'Овен': signIndex := 4;
'Телец': signIndex := 5;
'Близнецы': signIndex := 6;
'Рак': signIndex := 7;
'Лев': signIndex := 8;
'Дева': signIndex := 9;
'Весы': signIndex := 10;
'Скорпион': signIndex := 11;
'Стрелец': signIndex := 12;
end;
desc := Descriptions[signIndex];
writeln;
writeln('Ваш знак зодиака: ', sign);
writeln('Описание: ', desc);
readln;
end.
Как запустить программу
Для запуска программы вам понадобится:
- Компилятор Free Pascal или PascalABC.NET
- Скопируйте код в файл с расширением
.pas - Скомпилируйте и запустите
Расширение функционала
Вы можете улучшить программу, добавив:
- Определение китайского гороскопа по году рождения
- Генератор гороскопа на день с использованием случайных фраз