Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
ЛПЗ поОАиП.doc
Скачиваний:
55
Добавлен:
18.05.2015
Размер:
3.08 Mб
Скачать

Лабораторная работа №10

Задача: Вывести 5 одинаковых надписей: «Программа цикла»

Для вывода повторяющегося действия нам понадобиться описать переменную iцелого типа, обработать событияOnClickдля кнопкиButton1. В теле процедуры необходимо описать нижеследующий метод:

procedure TForm1.Button1Click(Sender: TObject);

begin

for i:=1 to 5 do

Memo1.Lines.Add('Программа цикла')

end;

Рассмотрим пример решения задачи: найти сумму ряда s=1+1/2+1/3+…+1/k.

Для задачи наиболее оптимальным алгоритмом решения будет цикл. Для того чтобы выделить повторяющие части запишем ряд следующим образом: s=1/1+1/2+1/3+…+1/k.

Заметим, что числители постоянен и равен 1. Знаменатели постоянно увеличиваются на 1 в интервале от 1 до k. Таким образом, общий вид элемента ряда = 1/i, гдеi– изменяющийся знаменатель. Следовательно, запишем метод решения задачи:

Var k,i: integer; s: real;

Begin

k:=StrToInt(Edit1.Text); s:=0;

For i:=1 to k do s:=s+1/i; {i пробегает все значения знаменателя от 1 до k (1, 2, 3, …, k) изначально s=0, при k=1 s=0+1/1, s становится равным 1; при k=2 s=1+1/2, s становится равным 1,5 и т.д.} Memo1.Text:=FloatToStr(s);

End;

Оператор параметрического цикла for

Пример 1:

Пусть нужно написать программу, которая вычисляет значение функции у = 5х2- 7 в точкахx—1, -0.5, 0, 0.5 и 1 с шагом 0,5.

procedure TForm1.Button1Click(Sender: TObject);

var

y:real;

x:real;

dx:real;

st:string;

i:integer;

begin

st:=' ';

x:=-1;

dx:=0.5;

for i:=1 to 5 do

begin

y:=5*x*x-7;

st:=st+'x='+floattostr(x)+','+' y='+floattostr(y)+chr(13)+chr(13);

x:=x+dx;

end;

label2.Caption:=st;

end;

end.

Результат на экране:

Задание 2.

Нужно написать программу, которая вычисляет значение функции в точкахХ значение которых равны от 9 до 10 с шагом 0,2

WHILE операторы

Пример 2:

Напишите программу, которая суммирует первых n чисел.

procedure TForm1.Button1Click(Sender: TObject);

var

n,i,s:integer;

begin

i:=1;

s:=0;

n:=StrToInt(Edit1.Text); while i<=n do

begin

s:=s+i;

inc(i);

end;

Edit2.Text:=IntToStr(s);

end;end.

Задание 4.

Напишите программу, которая находит произведение первых n чисел.

Задания для самостоятельной работы:

  1. Вывести таблицу умножения на любое число, введенное с клавиатуры.

  2. Вывести таблицу значений функции y=sin(x) в интервале 0..1

  3. Вывести 4 надписи: «На окне сидело nкошек», 1n4.

  4. В интервале [0,20] подсчитать количество четных чисел и чисел, которые делятся на 3.

  5. Вычислить сумму натурального ряда чисел от 1 до n.

  6. Вычислить сумму чисел s=1/(p+2)+2(p+2)+3/(p+2)+…+p/(p+2).

  7. Вычислить произведение чисел кратных 5 ряда от 1 до n.

8*. Вычислить сумму чиселs=(1+3+5+…+2*n-1)3-(2+4+6+…+2*n)2.

9*. Составить программу для проверки утверждения: «Результатами вычислений по формуле х2+х+17 при 0≤х≤15 являются простые числа». Все результаты вывести на экран (простое число – число которое делится только на себя и на единицу).

10*. Покупатель должен заплатить в кассуsрублей. У него имеются 1, 2, 5, 10, 50, 100, 500, 1000-рублевые купюры. Сколько купюр разного достоинства отдаст покупатель, если он начнет платить с самых крупных? (использовать процедуру Continue).

11*. Написать программу, которая запрашивает исходные данные и производит над ними выбранное пользователем действие. Выбор действий осуществляется с помощью меню. Исходные данные – числаaиb. Меню действий: 1—сложить, 2—умножить,3– вычесть,4– разделить,5– выход. Результат выводить после каждого действия

Лабораторная работа №3.

Тема: Решение задач на ввод, вывод данных.

Цель работы - создать программу, выполняющую следующие действия:

  1. После запуска программы по щелчку мышью на кнопке «Приветствие» появляется сообщение «Первые успехи».

Label 1

Button 1

Button 2

  1. Для выхода из программы необходимо щелкнуть мышью на кнопке «Закрыть».

Таблица 2. Свойства проекта 3

Выделенный объект

Вкладка окна

Object Inspector

Имя свойства/

имя события

Действие

Form1

Properties

Caption

Установка имени формы «Проект2»

Label1

Properties

Caption

Ввод текста надписи «Первые успехи»

Button1

Properties

Caption

Установка имени кнопки «Приветствие»

Events

OnClick

Label1.Caption:=’Первые успехи’

Button2

Properties

Caption

Установка имени кнопки «Закрыть»

Events

OnClick

Close;

Сделать так, чтобы после нажатия кнопки «Приветствие» на экране появлялось сообщение «Первые и не последние!».

procedure TForml.ButtonlClick(Sender: TObject);

begin

Label1.Caption:='Первые и не последние!';

end;

end.

Задача 1 Одна сторона прямоугольника на 5 см. длиннее другой, а сумма их длин равна 17 см. Найти стороны этого прямоугольника.

Задача 2 Одно число в 2 раза больше другого, а их сумма равна 93. Найти эти числа.

Задача 3 Определите из двух девочек старшую.

Задача 4 Вводятся оценки по физике и математике. Выведи на экран "Молодец", если их сумма равна 9 или более 9. В противном случае выведи "Подтянись".

Задача 5 Сформировать массив из положительных элементов и найти их произведение.

Лабораторная работа №4.

Тема: Решение задач на условный оператор и оператор выбора.

Цель: Ознакомить с использованием массивов