Основы программирования и алгоритмические языки                          
		Основы программирования и алгоритмические языки                          
 7 
Министерство образования и науки Украины 
Национальный горный университет 
Институт электроэнергетики 
Факультет информационных технологий 
Кафедра ПЗКС 
Реферат  по теме: 
«Освоение технологии структурного программирования 
и применения стандартных методов работы 
 с одномерными массивами 
при разработке и создании программы на языке Турбо Паскаль» 
по дисциплине 
“Основы программирования и алгоритмические языки” 
ВЫПОЛНИЛА:  
студент группы КС-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) 
	
	
					
							 |