В любой программе (Delphi, C++, C# и т.д.) выполнить следующее задание:
1. По введенным координатам точки А(a1,a2) вывести координатную четверть с
ПДСК (прямоугольно декартовая система координат).
2. Нарисовать домики пейзаж около него.
3. По введенному числу лепестков вывести значение гадания по ромашке «любит»
или «не любит».
Оформить практическую в текстовом редакторе Word с титульным листом,
описанием, скриншотами программы и листингом.
Информатика Университет Программирование программа Delphi нарисовать домики текстовый редактор Word листинг программы Новый
Шаг 1. Анализ требований задания
В задании необходимо реализовать три функциональности в одной программе:
После реализации программы требуется оформить практическую работу в текстовом редакторе Word. Оформление должно включать титульный лист, описание (анализ задания, алгоритм решения и т.д.), скриншоты работы программы и листинг кода.
Шаг 2. Выбор языка программирования и среды выполнения
Вы можете выбрать любой язык программирования: Delphi, C++, C#, Java и т.д. В качестве примера ниже приведём разбор решения на языке C# с использованием Windows Forms для создания графического окна, где легко можно и нарисовать пейзаж.
Шаг 3. Реализация функциональности
Шаг 4. Пример реализации на C# (Windows Forms)
Ниже приведён пример кода с комментариями:
Основной код (MainForm.cs):
Обратите внимание: данный код предназначен для примера. Перед запуском необходимо создать проект Windows Forms в Visual Studio.
using System; using System.Drawing; using System.Windows.Forms; namespace PracticalWork { public class MainForm : Form { // Поля для хранения введённых данных private TextBox tbX; private TextBox tbY; private Button btnDetermine; private Label lblResult; private TextBox tbPetals; private Button btnDaisy; private Label lblDaisyResult; public MainForm() { this.Text = "Практическая работа по Информатике"; this.Size = new Size(800, 600); // Элементы для координатной четверти Label lblA = new Label(); lblA.Text = "Введите координату A (a1):"; lblA.Location = new Point(20, 20); this.Controls.Add(lblA); tbX = new TextBox(); tbX.Location = new Point(200, 20); this.Controls.Add(tbX); Label lblB = new Label(); lblB.Text = "Введите координату B (a2):"; lblB.Location = new Point(20, 60); this.Controls.Add(lblB); tbY = new TextBox(); tbY.Location = new Point(200, 60); this.Controls.Add(tbY); btnDetermine = new Button(); btnDetermine.Text = "Определить четверть"; btnDetermine.Location = new Point(20, 100); btnDetermine.Click += BtnDetermine_Click; this.Controls.Add(btnDetermine); lblResult = new Label(); lblResult.Text = "Результат:"; lblResult.Location = new Point(20, 140); lblResult.Size = new Size(300, 20); this.Controls.Add(lblResult); // Элементы для гадания по ромашке Label lblPetals = new Label(); lblPetals.Text = "Введите число лепестков:"; lblPetals.Location = new Point(20, 180); this.Controls.Add(lblPetals); tbPetals = new TextBox(); tbPetals.Location = new Point(200, 180); this.Controls.Add(tbPetals); btnDaisy = new Button(); btnDaisy.Text = "Узнать гадание"; btnDaisy.Location = new Point(20, 220); btnDaisy.Click += BtnDaisy_Click; this.Controls.Add(btnDaisy); lblDaisyResult = new Label(); lblDaisyResult.Text = "Результат гадания:"; lblDaisyResult.Location = new Point(20, 260); lblDaisyResult.Size = new Size(300, 20); this.Controls.Add(lblDaisyResult); // Перерисовка формы для рисования пейзажа this.Paint += MainForm_Paint; } private void BtnDetermine_Click(object sender, EventArgs e) { double x, y; if(Double.TryParse(tbX.Text, out x) && Double.TryParse(tbY.Text, out y)) { string quarter = ""; if (x > 0 && y > 0) quarter = "Первая четверть"; else if(x < 0 && y > 0) quarter = "Вторая четверть"; else if(x < 0 && y < 0) quarter = "Третья четверть"; else if(x > 0 && y < 0) quarter = "Четвертая четверть"; else quarter = "Точка лежит на оси"; lblResult.Text = "Результат: " + quarter; } else { lblResult.Text = "Некорректный ввод координат!"; } } private void BtnDaisy_Click(object sender, EventArgs e) { int petals; if(Int32.TryParse(tbPetals.Text, out petals) && petals > 0) { string result = (petals % 2 == 0) ? "любит" : "не любит"; lblDaisyResult.Text = "Результат гадания: " + result; } else { lblDaisyResult.Text = "Некорректный ввод числа лепестков!"; } } private void MainForm_Paint(object sender, PaintEventArgs e) { Graphics g = e.Graphics; // Рисуем домик: прямоугольник для корпуса и треугольник для крыши Pen pen = new Pen(Color.Black, 2); Brush brushHouse = Brushes.Brown; // Корпус дома Rectangle houseRect = new Rectangle(400, 300, 100, 100); g.FillRectangle(brushHouse, houseRect); g.DrawRectangle(pen, houseRect); // Крыша дома (треугольник) Point p1 = new Point(400, 300); Point p2 = new Point(450, 250); Point p3 = new Point(500, 300); Point[] roof = { p1, p2, p3 }; g.FillPolygon(Brushes.Red, roof); g.DrawPolygon(pen, roof); // Рисуем солнце g.FillEllipse(Brushes.Yellow, 600, 30, 80, 80); g.DrawEllipse(pen, 600, 30, 80, 80); // Рисуем дерево // Ствол дерева g.FillRectangle(Brushes.SaddleBrown, 100, 250, 20, 100); g.DrawRectangle(pen, 100, 250, 20, 100); // Крона дерева g.FillEllipse(Brushes.Green, 70, 200, 80, 80); g.DrawEllipse(pen, 70, 200, 80, 80); } [STAThread] public static void Main() { Application.EnableVisualStyles(); Application.Run(new MainForm()); } } }
Шаг 5. Оформление практической работы в Word
При оформлении документа в Microsoft Word необходимо включить следующие разделы:
Заключение
Данный пример демонстрирует, как можно решить поставленное задание на одном из популярных языков программирования. По аналогичной логике можно реализовать программу и на других языках. Важно уделить внимание корректной обработке ввода и вывода, а также грамотному оформлению работы в текстовом редакторе.