Программирование на языке высокого уровня

Автор работы: Пользователь скрыл имя, 12 Декабря 2010 в 16:45, практическая работа

Описание работы

Даны действительные числа х и у, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее – их удвоенным произведением.

Содержание работы

1 Задание 1 2
1.1 Постановка задачи 2
1.2 Блок-схема программы 2
1.3 Исходные данные для отладки и тестирования программы 3
1.4 Исходный текст программы 3
1.5 Экранная форма программы 4
2 Задание 2 5
2.1 Постановка задачи 5
2.2 Блок – схема программы 5
2.3 Исходные данные для отладки и тестирования программы 7
2.4 Исходные данные программы 7
2.5 Экранная форма программы 8
3 Задание 3 9
3.1 Постановка задачи 9
3.2 Блок-схема программы 9
3.3 Исходные данные для отладки и тестирования программы 11
3.4 Исходный текст программы 11
3.5 Экранная форма программы 12
4 Задание 4 13
4.1 Постановка задачи 13
4.2 Блок-схема программы 13
4.3 Исходные данные для отладки и тестирования программы 17
4.4 Исходный текст программы 17
4.5 Экранная форма программы 19

Файлы: 1 файл

пояснительная записка.doc

— 311.00 Кб (Скачать файл)

МИНИСТЕРСТВО  ОБРАЗОВАНИЯ И НАУКИ РФ

ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ

ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ

«Уфимский государственный авиационный технический  университет»

ФИЛИАЛ  В ГОРОДЕ СТЕРЛИТАМАКЕ 

              КАФЕДРА ЕСТЕСТВЕННО-НАУЧНЫХ И ОБЩЕПРОФЕССИОНАЛЬНЫХ ДИСЦИПЛИН 
               
               
               
               
               
               
               
               

ПОЯСНИТЕЛЬНАЯ ЗАПИСКА 

к расчетно-графической  работе по Информатике 
 

«Программирование на языке высокого уровня» 
 
 
 
 
 
 
 

2403.402103.000ПЗ

(обозначение  документа) 
 
 
 

Группа  СПС-102з Фамилия И.О. Подпись Дата Оценка
Студент Камалеев Э.С.      
Проверил        
 
 
 

Стерлитамак 2010 г.

Содержание 
 

  1. Задание 1
    1. Постановка  задачи
 

     Даны  действительные числа х и у, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее – их удвоенным произведением.

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

 
 
 

 
 
 

 

 
 

 
 

 

 

 
 
 

 
 
 
 
 
 

Рисунок 1. Блок-схема действий над числами

Продолжение рис.1.

 

 
 
 

 

 

 

 
 
 
 

Рисунок 1. Блок-схема действий над числами

    1. Исходные  данные для отладки и тестирования программы
 

     В качестве исходных данных выберем произвольные 2 действительных числа a, b и проверим работу программы, нажав на кнопку «Выполнить».

     Результаты  можно посмотреть в рабочем окне программы на рис.2.

    1. Исходный  текст программы
 

procedure TForm1.Button1Click(Sender: TObject);

var a,b,c,d:real;

begin

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

if (a=b) then ShowMessage('Числа  равны! Введите разные числа.');

if (a>b) then begin

c:=2*a*b;

d:=(a+b)/2;

end ;

if (a<b)then

begin

c:=(a+b)/2;

d:=2*a*b;

end;

Edit3.Text:=FloatToStr(c);

Edit4.Text:=FloatToStr(d);

end;

    1. Экранная  форма программы
 

 

Рисунок 2. Результат выполнения программы

 

  1. Задание 2
    1. Постановка  задачи
 

Протабулировать функцию заданной формулой: 

где с=4, a=2.8, b=-0.3, , h=0.05.

    1. Блок  – схема программы

 
 
 
 
 
 

 

 
 

 
 

 

 
 

 

 
 
 

Рисунок 3. Блок-схема табулирования функции

Продолжение Рис.3. 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Рисунок 3. Блок-схема табулирования функции 

    1. Исходные  данные для отладки и тестирования программы
 

     В качестве исходных данных выберем значения a=1, b=2, h=0.05 и проверим работу программы, нажав кнопку «Табулировать».

     Результаты  можно посмотреть в рабочем окне программы рис.4. 
 
 

    1. Исходные  данные программы
 

procedure TForm1.Button1Click(Sender: TObject);

var

a,b,a1,b1,c1,h,x,y:extended;

begin

a:=StrToFloat(Edit1.Text);

b:=StrToFloat(Edit2.Text);

h:=StrToFloat(Edit3.Text);

a1:=2.8;

b1:=-0.3;

c1:=4;

x:=a;

Memo1.Clear;

Memo1.Lines[0]:=' x | y ';

Memo1.Lines.Add('----------');

while x<=b do begin

if (x<1.2)  then   y:=a1*x*x+b1*x+c1;

if (x=1.2) then y:=a1/x+sqrt(x*x+1);

if (x>1.2) then y:=(a1+b1*x)/sqrt(x*x+1);

Memo1.Lines.Add(FloatToStrf(x,fffixed,5,2)+'|'+FloatToStrf(y,fffixed,5,2));

x:=x+h;

end;

end; 
 
 
 
 
 
 
 
 

    1. Экранная  форма программы
 
 

 

      Рисунок 4. Результат выполнения программы

 

  1. Задание 3
    1. Постановка  задачи

1.  Дан массив целых чисел из n элементов, заполненный случайным образом числами из промежутка [-10,20]. Найти сумму элементов, имеющих нечетные индексы.

2.  Подсчитать количество элементов массива, значения которых больше заданного числа А и кратных 5.

3.Найти  номер первого отрицательного  элемента, делящегося на 5 с остатком 2.

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

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Рисунок 5. Блок-схема процедуры заполнения массива случайными числами 

 
 
 
 
 

 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

 

Рисунок 6. Блок-схема процедуры для необходимых  вычислений и вывода результатов  на экран

    1. Исходные  данные для отладки  и тестирования программы
 

     В качестве исходных данных вводим любое  целое число n – количество элементов массива и, нажав на кнопку «Создать массив», формируем одномерный массив, заполненный случайным образом целыми числами из промежутка [-10,20].

     При нажатии на кнопку «Выполнить» происходит вычисление, заданные в задании.

Результаты  можно посмотреть в рабочем окне программы рис. 7

    1. Исходный  текст программы
 

     Описание  глобальных переменных

 

var

  Form1: TForm1;

  n:integer;

  a:array of integer; 

     Текст процедуры для  задания массива  случайными числами. 

procedure TForm1.Button1Click(Sender: TObject);

var

i:integer;

begin

Randomize;

n:=StrToInt(Edit1.Text);

SetLength(a,n);

Edit2.Clear;

for i:=1 to n do

begin

a[i]:=Random(30)-10;

Edit2.Text:=Edit2.Text+' '+IntToStr(a[i]);

end;

end;                             

     Текст процедуры для  вычислений и вывода результатов на экране 

procedure TForm1.Button2Click(Sender: TObject);

var

sum,i,k,l,a1:integer;

begin

  Edit3.Clear;

  Edit4.Clear;

  Edit5.Clear;

  a1:=StrToInt(Edit6.Text);

  sum:=0;

  k:=0;

  For i:=1 to n do

  if (i mod 2<>0) then sum:=sum+a[i];

  If CheckBox1.Checked then Edit3.Text:=IntToStr(sum);

   For i:= 1 to n do begin

  if (a[i]>a1) and (a[i] mod 5=0) then k:=k+1;

  end;

  if CheckBox2.Checked then Edit4.Text:=IntToStr(k);

  l:=0;

  for i:=n downto 1 do begin

  if (a[i]<0) and (abs(a[i]) mod 5 = 2) then l:=i;

  end;

  If CheckBox3.Checked then Edit5.Text:=IntToStr(l);

  end; 

                

    1. Экранная  форма программы
 

 

Рисунок 7. Результат выполнения программы 

Список  использованной литературы 
 
 

    1. http://wiki.lazarus.freepascal.org - Lazarus wiki энциклопедия по Free Pascal Compiler/Lazarus
    2. http://lazarus.freepascal.org - Официальный сайт проекта Lazarus
    3. Бобровский С.И.,lazarus. Учебный курс (пособие для самообразования), 2005г.
    4. Информатика: Учебник для вузов.- / Под ред. С.В. Симоновича. – СПб.: Питер, 2008.

Информация о работе Программирование на языке высокого уровня