МИНИСТЕРСТВО ОБРАЗОВАНИЯ И НАУКИ РФ
ГОСУДАРСТВЕННОЕ ОБРАЗОВАТЕЛЬНОЕ УЧРЕЖДЕНИЕ
ВЫСШЕГО ПРОФЕССИОНАЛЬНОГО ОБРАЗОВАНИЯ
«Уфимский государственный авиационный технический университет»
ФИЛИАЛ В ГОРОДЕ СТЕРЛИТАМАКЕ
КАФЕДРА ЕСТЕСТВЕННО-НАУЧНЫХ И ОБЩЕПРОФЕССИОНАЛЬНЫХ ДИСЦИПЛИН
ПОЯСНИТЕЛЬНАЯ ЗАПИСКА
к расчетно-графической работе по Информатике
«Программирование на языке высокого уровня»
2403.402103.000ПЗ
(обозначение документа)
Группа СПС-102з |
Фамилия И.О. |
Подпись |
Дата |
Оценка |
Студент |
Камалеев Э.С. |
Проверил |
Стерлитамак 2010 г.
Содержание
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 Задание 1
1.1 Постановка задачи
Даны действительные числа х
и у
, не равные друг другу. Меньшее из этих двух чисел заменить половиной их суммы, а большее – их удвоенным произведением.
1.2 Блок-схема программы
Рисунок 1. Блок-схема действий над числами
Продолжение рис.1.
Рисунок 1. Блок-схема действий над числами
1.3 Исходные данные для отладки и тестирования программы
В качестве исходных данных выберем произвольные 2 действительных числа a, bи проверим работу программы, нажав на кнопку «Выполнить».
Результаты можно посмотреть в рабочем окне программы на рис.2.
1.4 Исходный текст программы
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.5 Экранная форма программы
Рисунок 2. Результат выполнения программы
2 Задание 2
2.1 Постановка задачи
Протабулировать функцию заданной формулой:
где с=4, a=2.8, b=-0.3,, h=0.05.
2.2 Блок – схема программы
Рисунок 3. Блок-схема табулирования функции
Продолжение Рис.3.
Рисунок 3. Блок-схема табулирования функции
2.3 Исходные данные для отладки и тестирования программы
В качестве исходных данных выберем значения a=1, b=2, h=0.05 и проверим работу программы, нажав кнопку «Табулировать».
Результаты можно посмотреть в рабочем окне программы рис.4.
2.4 Исходные данные программы
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;
2.5 Экранная форма программы
Рисунок 4. Результат выполнения программы
3 Задание 3
3.1 Постановка задачи
1. Дан массив целых чисел из n
элементов, заполненный случайным образом числами из промежутка [-10,20]. Найти сумму элементов, имеющих нечетные индексы.
2. Подсчитать количество элементов массива, значения которых больше заданного числа А
и кратных 5.
3.Найти номер первого отрицательного элемента, делящегося на 5 с остатком 2.
3.2 Блок-схема программы
Рисунок 5. Блок-схема процедуры заполнения массива случайными числами
Рисунок 6. Блок-схема процедуры для необходимых вычислений и вывода результатов на экран
3.3 Исходные данные для отладки и тестирования программы
В качестве исходных данных вводим любое целое число n – количество элементов массива и, нажав на кнопку «Создать массив», формируем одномерный массив, заполненный случайным образом целыми числами из промежутка [-10,20].
При нажатии на кнопку «Выполнить» происходит вычисление, заданные в задании.
Результаты можно посмотреть в рабочем окне программы рис. 7
3.4 Исходный текст программы
Описание глобальных переменных
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;
3.5 Экранная форма программы
Рисунок 7. Результат выполнения программы
Список использованной литературы
1. http://wiki.lazarus.freepascal.org - Lazarus wiki энциклопедияпо Free Pascal Compiler/Lazarus
2. http://lazarus.freepascal.org - Официальный сайт проекта Lazarus
3. Бобровский С.И.,lazarus. Учебный курс (пособие для самообразования), 2005г.
4. Информатика: Учебник для вузов.- / Под ред. С.В. Симоновича. – СПб.: Питер, 2008.
|