Министерство образования и науки Украины
Национальный горный университет
Институт электроэнергетики
Факультет информационных технологий
Кафедра ПЗКС
Реферат по теме:
«Освоение технологии структурного программирования
и применения стандартных методов работы
с одномерными массивами
при разработке и создании программы на языке Турбо Паскаль»
по дисциплине
“Основы программирования и алгоритмические языки”
ВЫПОЛНИЛА:
студент группы КС-06-2
Иванова Е.И.
ПРОВЕРИЛА:
ассистент кафедры ПЗКС
Попова Т.С.
Днепропетровск
2006
1.Условие задачи:
В массиве T(12) хранится среднемесячная температура для каждого из 12 месяцев в г. Днепропетровске. Определить самую большую отрицательную и самую маленькую положительную температуры.
2. Решение задачи в ее предметной области:
Создадим массив T12, где хранится среднемесячная температура для каждого из 12 месяцев в г. Днепропетровске. Создадим массивы А и В. Из массива Т12 перенесем все отрицательные элементы в массив А, а все положительные элементы в массив В. В массиве А найдем самую большую отрицательную температуру, а в массиве В - самую большую положительную температуру.
3. Проектируем структуры данных (их имена и типы).
Понятно, что все имена массивов с их типами, входящие в условие задачи, нужно описать в программе. Кроме того, нам понадобятся: переменная цикла i, количество отрицательных элементов KolOtric, , количество положительных элементов KolPolozh, самая большая отрицательная температура Max и самая маленькая положительная температура Min и – все типа Integer.
Значит в разделе описаний программы, назовем ее ALENA5, с учетом требований о необходимости обеспечения легкочитаемости программы и размещения необходимых комментариев, поместим следующие описания:
Type
VectorType= Array[1..12] of integer;
Var
A, {massiv dlya hranenija otric. chisel}
B, {massiv dlya hranenija polozh. chisel}
T12:VectorType; {massiv dlya hraneniya vektora}
i, {parametr cikla}
kolOtric, {kolichestvo otric. elementov}
kolPolozh, {kolichestvo polozhitelnih elementov}
Max, {samaya bol'shaya otric. temper.}
Min:integer; {samaya mal. polozhit. temper}
4. Проводим нисходящую разработку (проектирование) программы методом пошаговой детализации с помощью псевдокода. Воспользуемся результатами для получения первой версии алгоритма:
Ввести данные ALENA5
Выполнить вычисления ALENA5
Вывести результаты ALENA5
С учетом требований к «дружественности» интерфейса, детализация псевдокода Ввести данные ALENA5 дает следующее:
Вывести на экран приглашение для ввода массива T12
Ввести массив T12
Детализация псевдокода Выполнить вычисления ALENA5
дает следующее:
Определить отрицательные элементы T12 и переписать в массив А
Определить положительные элементы T12 и переписать в массив В
Найти наибольший отрицательный элемент массива А или доказать, что его не существует
Найти наименьший положительный элемент массива В или доказать, что его не существует
Детализация псевдокода Вывести результаты ALENA5 дает следующее:
Вывести наибольший отрицательный элемент массива T12
Вывести наименьший положительный элемент массива T12
5. Выполняем структурное программирование с использованием стандартных приемов:
BEGIN
CLRSCR; {ochicshaem ekran}
Writeln('Vvedite 12 elementov vectora T12: ');
for i:=1 to 12 do {organizovivaem cikl po kolichestvu elementov}
begin
Write ( ' T12 [ ' , i , ' ] = ') ; {Udobno videt' nomera elementov}
Readln (T12[i])
end;
Writeln; {Ustanavlivaem kursor na novuju stroku}
{perenosim otric. elementi iz T12 v A }
KolOtric:=0;
for i:=1 to 12 do
If T12[i]<0 then
begin
KolOtric := kolOtric + 1;
A[KolOtric] := T12[i];{zanosim po etomu nomeru}
end;
{perenosim polozhitelnie elementi iz T12 v B}
KolPolozh :=0;
fOR I:=1 TO 12 DO
If T12[i]>0 then
begin
KolPolozh := KolPolozh + 1;
B[KolPolozh] := T12[i];{zanosim po etomu nomeru}
end;
{opredelyaem samuju bol'shuju otric. temperaturu}
if ( KolOtric >= 1 ) then
begin
Max:= A[1]; {Chitaem, chto eto pervij element massiva}
if ( KolOtric > 1 ) then
for i:=2 to KolOtric do {poetomu nachinaem obrabotku so 2-go elementa}
If A[i] > Max then {sravnivaem s tekush. max otric. znach}
Max := A[i]; {zapominaem samoe bol'shoe otric. znach}
Writeln ('samaja bolshuju otric. temperatura Max= ', Max);
end
else
Writeln('Otricatelnyh znacheniy net');
{opredelyaem samuju malen'kuju polozhit. temperaturu}
if ( KolPolozh >= 1 ) then
begin
Min:= B[1]; {Chitaem, chto eto pervij element massiva}
if ( KolPolozh > 1 ) then
for i:=2 to KolPolozh do {poetomu nachinaem obrabotku so 2-go elementa}
If B[i] < Min then {sravnivaem s tekush. min.polozh. znach}
Min := B[i]; {zapominaem samoe maloe polozh. znach}
Writeln ('samaja malaja polozh. temperatura Min= ', Min);
end
else
Writeln('Polozhitelnyh znacheniy net');
{Vividim rezultat}
Readln
End.
6. Отладка программы.
Рис. 1. Результат работы программы
Рис. 2. Результат работы программы
7. Тестирование программы.
Тестовый пример для нашей задачи будет включать два варианта:
Пример1:
При
T12[1] = 1, T12[2]=-2, T12[3]=3, T12[4]=-4, T12[5]=5, T12[6]=-6, T12[7]=7, T12[8]=-8, T12[9]=9, T12[10]=-10, T12[11]=11, T12[12]=-12.
Как мы видим, самая большая отрицательная температура у нас T12[2]=-2, а самая малая положительная T12[1] = 1.
Рис. 3. Результат тестирования программы( пример 1)
Пример2:
При
T12[1] = -1, T12[2]=2, T12[3]=-3, T12[4]=4, T12[5]=-5, T12[6]=6, T12[7]=-7, T12[8]=8, T12[9]=-9, T12[10]=10, T12[11]=-11, T12[12]=12.
Как мы видим, самая большая отрицательная температура у нас T12[1]=-1, а самая малая положительная T12[2]=2.
Рис. 4. Результат тестирования программы( пример 2)
Другие работы по теме:
Автоматизированния система обучения программированию
Актуальной проблемой совершенствования учебного процесса является разработка программного обеспечения для его проведения. Очевидным пробелом является почти полное отсутствие средств обучения основам программирования.
Языки СССР
Введение 1 История 2 Письменность 3 Индоевропейские языки 3.1 Балтийские языки 3.2 Германские языки 3.3 Греко-фригийско-армянские языки 3.4 Иранские языки
Скотт, Дана Стюарт
Да́на Стю́арт Скотт (англ. Dana Stewart Scott , р. 1932) — американский учёный в области математики и информатики. Исследования Скотта связанны с теорией моделей, теорией автоматов, модальной и интуиционистской логиками, конструктивной математикой и связью между логикой и теорией категорий.
Функциональное и логическое программирование
Математические и алгоритмические основы решения задачи. Функциональные модели и блок-схемы решения задачи. Программная реализация решения задачи. ЛИСП-реализация вычисления неэлементарных функций. Вычисления гамма функции для положительных неизвестных х.
Основы алгоритмизации
Понятие алгоритма, его свойства. Дискретность, определенность, результативность, формальность как свойства алгоритма. Программа как описание структуры алгоритма на языке алгоритмического программирования. Основные структурные алгоритмические конструкции.
Распределенное программирование
Развитие современной вычислительной аппаратуры характеризуется четко выраженной тенденцией распространения многопроцессорных компьютеров и вычислительных сетей как локальных, так и глобальных.
Лабораторная работа №5
Цель работы: изучение условного оператора, оператора отбора, составного оператора и правил программирования разветвляющихся алгоритмов. Задание № 17
Алгоритмы и блок-схемы
Понятие алгоритма, его назначение, представление (изобразительные средства для описания), типы, способы записи, схемы. Основные принципы разработки алгоритмов и программ. Характеристика языков программирования. Средства и правила построения блок-схем.
Алгоритмические языки: обработка одномерных массивов
Работа с массивами, их ввод и вывод, организация программ циклической структуры. Способы описания и использования массивов, алгоритмы их сортировки, сортировка выбором и вставками. Алгоритмы поиска элемента в неупорядоченном и упорядоченном массивах.
Алгоритмические языки: обработка массивов
Символьные типы данных, работа со строками, составление блок-схемы алгоритма и программы для работы с массивами. Организация программы с использованием процедур и функций. Процедуры и функции, использующиеся при обработке файлов; компонентные файлы.
Алгоритмические языки: использование множеств
Изучение способов описания и использования множеств, разработка алгоритма и составление программы для решения задачи. Нахождение в последовательности целых чисел таких, которые встречаются в ней ровно два раза. Набор программы, ее отладка и тестирование.
Введение в программирование
Сущность отладки, условия ее выполнения. Ошибки при компиляции программы, создание и изменение исходных символьных файлов. Процесс преобразования кода в машинный. Первый программист, виды трансляторов, классификация и уровни языков программирования.
История развития вычислительной техники 2 2
Text Text 1953-1955. IBM 604, IBM 608, IBM 702 1953-1955. IBM 604, IBM 608, IBM 702 1965-1966. БЭСМ-6 60 000 транзисторов 200 000 диодов 1 млн. операций в секунду память – магнитная лента, магнитный барабан работали дл 90-х гг. Graphics
Решение практической задачи на паскале
ГОУ ВПО «Московский государственный открытый университет» Чебоксарский политехнический институт (филиал) Кафедра информационных технологий и программирования
Прогресс компьютерных технологий
Прогресс компьютерных технологий определил процесс появления новых разнообразных знаковых систем для записи алгоритмов – языков программирования. Смысл появления такого языка – оснащенный набор вычислительных формул дополнительной информации, превращает данный набор в алгоритм. Язык программирования служит двум связанным между собой целям: он дает программисту аппарат для задания действий, которые должны быть выполнены, и формирует концепции, которыми пользуется программист, размышляя о том, что делать.
Понятие информатики. Этапы развития вычислительной техники
РАЗДЕЛ 1. ОБЩИЕ СВЕДЕНИЯ О КОМПЬЮТЕРНОЙ ОБРАБОТКЕ ИНФОРМАЦИИ Лекция 1. Понятие информатики. Этапы развития вычислительной техники. Информатика — наука об автоматизации работы с информацией, включая вопросы получения, обработки, хранения, поиска, ввода и вывода информации, тиражирования, передачи на расстояние.
Циклические вычислительные процессы
Отчет по лабораторной работе №1. Тема: «Циклические вычислительные процессы». Дисциплина: «Языки программирования и методы трансляции». Цель: Ознакомление с методами работы организации циклических вычислений при использовании языка программирования С.
Синтаксический анализ
(парсинг) В информатике, синтаксический анализ— это процесс сопоставления линейной последовательности лексем (слов, токенов) языка с его формальной грамматикой. Результатом обычно является дерево разбора (синтаксическое дерево). Обычно применяется совместно с лексическим анализом. Синтаксический анализатор (парсер) — это программа или часть программы, выполняющая синтаксический анализ.
Информационная поисковая система
Автономно некоммерческая организация Гуманитарно-инженерный колледж Курсовая работа по дисциплине: «Технологии разработки программных продуктов»
Искусственные языки
Сконструированные языки, их различие по специализации и назначению и определение степени сходства с естественными языками. Основные виды искусственных языков. Невозможность применения искусственного языка в жизни как главный недостаток его изучения.
Ляпунов Алексей Андреевич
Ляпунов Алексей Андреевич (1911-73), российский математик, член-корреспондент АН СССР (1964). Автор трудов по теории множеств, математическим вопросам кибернетики, математической лингвистике.
Ершов Андрей Петрович
Основные направления его деятельности связаны с вопросами автоматизации программирования и проблемами теоретического программирования, объектами которого служат математические абстракции программ.