Алгоритмизация и программирование

Автор работы: Пользователь скрыл имя, 18 Июля 2014 в 00:23, курсовая работа

Краткое описание

Претворение в жизнь данной работы преследует две основные цели, которые перекликаются с ее названием.
Во-первых, освоить способы построения алгоритмов для решения конкретных задач. Многие, начинающие изучать языки высокого уровня, недооценивают значимость алгоритмизации. Кажется – нет ничего проще, чем сразу приступить к программированию. На самом деле, только со временем и усложнением программируемых задач начинаешь понимать необходимость навыков алгоритмизации. Решению любой задачи обязательно должен предшествовать этап создания математического аппарата, и алгоритма, его реализующего.

Содержание

Введение 2
1.1 Теоретическая часть 3
1.2 Операторы ввода-вывода 10
Экспериментальная часть 12
2.1 Задание на курсовое проектирование 12
2.2 Математический метод решения задачи 13 2.3 Алгоритм программы 14
2.4 Анализ результатов 17
Заключение 18
Библиография

Прикрепленные файлы: 1 файл

Информатика.doc

— 202.00 Кб (Скачать документ)

Для вывода информации в Паскале также есть две команды:

Write(<Список вывода>);

Writeln(<Список вывода>);     

Такой формат использования Write и Writeln позволяет выводить на экран монитора данные из списка вывода. Элементами списка вывода могут являться имена переменных, выражения, константы. Элементы списка, также как и в операторах ввода, разделяются запятыми.     

Различие между двумя операторами вывода таково: после выполнения оператора Writeln (от Write line) происходит переход на новую строчку, а после выполнения инструкции Write, переход на новую строчку не происходит и печать по последующим командам вывода Write или Writeln будет происходить на той же строчке. При вызове оператора Writeln без параметров просто происходит переход на новую строчку.

При выводе данных можно дополнительно задать формат вывода:

  • для данных целого, логического, символьного и строкового типа указать количество позиций на экране;
  • для данных вещественного типа указать общее количество позиций (учитывая знак числа и дробную точку) и количество позиций для вывода дробной части.
Таблица 2. Форматы вывода для различных типов данных

тип данных 11111

значение a1a1111

оператор 11111

результат11111

целый

6

write(a:5);

¬¬¬¬6

целый

50

write(a);

50

целый

10564

write(a:2);

10564

символьный

s

write(a);

s

символьный

Ф

write(a:5);

¬¬¬¬Ф

строковый

Паскаль

write(a);

Паскаль

строковый

Новый год

write(a:15);

¬¬¬¬¬¬Новый год

строковый

Новый год

write(a:1);

Новый год

вещественный

45.5

write(a);

¬4.55000000000000E+0001

вещественный

511.04

write(a:10:4);

¬¬511.0400

вещественный

-46.78

write(a:7:2);

¬-46.78

вещественный

157.35

write(a:2);

¬1.6E+0002

вещественный

157.35

write(a:10);

¬1.6E+0002

вещественный

157.35

write(a:15);

¬1.573500E+0002

вещественный

157.35

write(a:20);

¬1.57350000000E+0002

логический

True

write(a);

True

логический

True

write(a:10);

¬¬¬¬¬¬True


 

Примечание: Для удобства восприятия здесь и в дальнейшем символ ¬ означает пробел.

  1. ЭКСПЕРИМЕНТАЛЬНАЯ ЧАСТЬ

2.1. Задание на курсовое  проектирование

Вариант № 11

Составить схему алгоритма и программу на алгоритмическом языке Турбо-Паскаль 7.0 для решения следующей задачи:

Найти минимальное значение высоты шарового сегмента h (h изменяется от h1 до h2 с шагом k) и соответствующее ему значение радиуса основания шарового сегмента r1, для которых площадь поверхности шарового сегмента не меньше площади поверхности прямоугольного параллепипеда со сторонами a, b и c (сторона c изменяется от с1 до с2  с шагом m), r – радиус шара, из которого вырезан шаровой сегмент, остается неизменным.

Заданные параметры:

h1 = 12.8; h2 = 0.2; k = -0.1; a = 5.0; b = 7.7; c1 = 1.3; c2 = 4.3; m = 0.1; r = 12.9.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

    1. Математический метод решения задачи

Программирование вычислительного процесса стереометрии, несомненно, облегчает расчет таких геометрических параметров трехмерных тел, как объем, площадь поверхности. Прежде всего, перед составлением программы, необходимо выбрать формулы, по которым программа будет производить необходимые расчеты. Часть шаровой поверхности, отсекаемая от неё какой-нибудь плоскостью, называется сегментной поверхностью (рис. 4).

О поверхности шарового сегмента гласит одна из основных теорем стереометрии: Площадь сегментной поверхности равна произведению её высоты на окружность большого круга:

Sс.пов = 2pRh, где  (1)

h = АМ (по рисунку) – высота шарового сегмента,

R – радиус шара. В работе также будет полезным использовать соотношение радиуса шара, высоты шарового сегмента и радиуса его основания r1 = МС (из треугольника ОСМ по теореме Пифагора):

   (2)

Кроме того, понадобится понятие прямоугольного параллепипеда. Прямым параллелепипедом называется параллелепипед, боковые ребра которого перпендикулярны основаниям.

Прямоугольным параллелепипедом называется прямой параллелепипед, основания которого прямоугольники (рис. 5).

Площадь его поверхности:

S = 2*(ab+ac+bc),    (3)

где a, b, c – длина, ширина и высота параллепипеда.

 

    1. АЛГОРИТМ программы

Приведем текстовую интерпретацию алгоритма. Программа состоит из следующих шагов:

Шаг 1 – ввод исходных данных – параметров фигур.

Шаг 2 – открытие цикла с предусловием (WHILE) по высоте шарового сегмента.

Шаг 3 – вычисление площади поверхности шарового сегмента и радиуса его основания.

Шаг 4 –  открытие второго, вложенного цикла также с предусловием по стороне параллепипеда с.

Шаг 5 – вычисление площади поверхности параллепипеда.

Шаг 6 – проверка условия, что если текущее значение высоты меньше минимального и одновременно (оператор AND) площадь поверхности шарового сегмента не меньше площади поверхности параллепипеда, то считать текущее значение высоты и радиуса основания сегмента минимальным (h_fine:=h;  r_fine:=r1).

Шаг 7 – наращивание счетчика вложенного цикла (c:=c+m).

Шаг 8 – если параметр вложенного цикла не удовлетворяет условию c<=c2, то выход из цикла.

Шаг 9 – наращивание счетчика внешнего цикла (h:=h+k).

Шаг 10 – если параметр этого цикла не удовлетворяет условию h>=h2, то выход из цикла.

Шаг 11 – вывод на экран компьютера итоговых значений – минимальной высоты и радиуса основания шарового сегмента.

Шаг 12 – завершение работы программы.

Примечание: цикл с предусловием выполняется, пока условие верно.

 

 

 

Блок-схема программы




 

 



 



 

 



 



h>=h2




 



c<=c2




 


 


 



 




 



                                                                            



 



 




 

 

 

 

 

 

 

 

 

2.4. АНАЛИЗ РЕЗУЛЬТАТОВ

Как правило, при проверке правильности работы программы, пользуются расчетом с помощью электронного калькулятора (если позволяет сложность математических методов). Однако расчет ведут не по всем значениям, а выборочно – по тем, которые, предположительно, должны бать близки к искомым.

Результат работы программы, который пользователь может наблюдать на экране (поскольку режим текстовый, результат – числовое представление):

h = 1.40  r1 = 5.84

При проверке результатов вручную, оказалось, что параметр h не должен опускаться ниже планки в 1.4 для выполнения заданного условия. При этом площадь поверхности сегмента составляет 113.42, а нетрудно проверить, что наименьшая площадь параллепипеда составляет 110.02. Значит, задача решена программными методами верно.

Оценка точности не входила в задачи работы, однако при необходимости нетрудно будет модифицировать уже существующую программу (файл Purd.pas).

 

 

 

 

 

 

 

 

 

 

 

 

 

ЗАКЛЮЧЕНИЕ

Турбо Паскаль был выбран как наилучший язык программирования для обучения основам профессионального программирования.

Турбо Паскаль – достаточно «старый» программный продукт. Следует заметить, однако, что Паскаль – это живой язык. Известны, используются или находятся в стадии разработки компиляторы и среды разработки программ на Паскале для различных операционных систем,  в том числе и бурно развивающейся операционной системы Linux. Эти системы иногда частично, а иногда и в значительной мере совместимы с Турбо Паскалем, а следовательно, накопленный опыт может быть использован и для серьезной, профессиональной работы по разработке программ.

Разработка курсового проекта – наилучший способ на практике изучить язык программирования. Была создана программа. В процессе отладки программы устранены все возможные неприятности и неточности. Программа рабочая. Предполагается ее дальнейшее усовершенствование с тем, чтобы она решала целый комплекс родственных программ.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

БИБЛИОГРАФИЯ

  1. Ефимов О., Моисеев М., Шафрин Ю. Компьютерные технологии. – М., 1997
  2. Фигурнов В.Э. IBM PC для пользователя. - М.:ИНФРА-М, 1993.
  3. Марченко А. И., Марченко Л. И. Программирование в среде Turbo Pascal 7.0. – М., Бином Универсал, К.: Юниор, 1997.
  4. В.С. Анфилатов, Л.А. Шелутко. Турбо Паскаль. Стандартные подпрограммы. - Санкт-Петербург, 1993
  5. Н.Б.Культин. Программирование в Turbo Pascal 7.0 и Delphi.-СПб.: BHV - Санкт-Петербург, 1998
  6. Задания для внеклассной работы по геомерии 8-11 классы. Василевский А. Б. – Минск: ИП «Экоперспектива», 1998.

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

ПРИЛОЖЕНИЕ I. ЛИСТИНГ ПРОГРАММЫ

program Purdishev;

uses crt;

const

r=12.9; (*Радиус шара*)

var

h,h_fine,h1,h2,k,r1,r_fine,a,b,c,c1,c2,m,S_segm,S_par:real;

begin

clrscr;

(*Изменение высоты сегмента*)

h1:=12.8;

h2:=0.2;

k:=-0.1;

(*Параметры параллепипеда*)

a:=5.0;

b:=7.7;

c1:=1.3;

c2:=4.3;

m:=0.1;

h:=h1;

h_fine:=h;

while h>=h2 do

begin

c:=c1;

S_segm:=2*3.14*r*h;

r1:=sqrt(h*(2*r-h));

while c<=c2 do

begin

S_par:=2*(a*b+a*c+b*c);

if (S_segm>=S_par) and (h<h_fine) then

begin

h_fine:=h;

r_fine:=r1;

end;

c:=c+m;

end;

h:=h+k;

end;

writeln('h = ',h_fine:2:2,' r1 = ',r_fine:2:2);

readkey;

end.

 

 

 

 

 

 

 

 

 

 

 

 

 

 


 



Информация о работе Алгоритмизация и программирование