русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

Управления


Дата добавления: 2015-06-12; просмотров: 645; Нарушение авторских прав


Операторы передачи управления принудительно изменяют порядок выполнения команд.

Оператор

goto метка

где метка – идентификатор, применяют для безусловного перехода, он передает управление оператору с меткой:

метка: оператор;

Операторы break и continue используют только внутри циклов. Так оператор break осуществляет немедленный выход из циклов repeat, while, for и управление передается оператору, находящемуся непосредственно за циклом. Оператор continue начинает новую итерацию цикла, даже если предыдущая не была завершена.

Оператор exit осуществляет выход из подпрограммы.

Оператор halt прекращает выполнение программы.

 

Задача. Составить таблицу значений функции y=3cos(x2) на отрезке [xn;xk] с шагом dx. Вывести на печать каждую вторую пару значений x и y. Найти среднее арифметическое ненулевых значений y.

Входные данные:

начальн. значение аргумента – xn,

конечн. значение аргумента – xk,

шаг изменения аргумента – dx.

Выходные данные:

множество значений X и Y;

S – среднее значение Y;

Вспомагательные переменные:

K – количество значений Y;

i – номер выводимых значений.

 

 

При сложении нескольких чисел необходимо накапливать результат в определенном участке памяти, каждый раз считывая из этого участка предыдущее значение суммы и прибавляя к нему следующее слагаемое.

S:=S+Y

 

Для выполнения первого оператора накапливания суммы из участка памяти необходимо взять такое число, которое не влияло бы на результат сложения. Т.е. перед началом цикла переменной, предназначенной для накапливания сумы, необходимо присвоить значение нуль: S:=0.

 

При вычислении количества значений практически происходит суммирование единиц. Поэтому, для выполнения первого оператора накапливания ячейка обнуляется, K=0. Далее, K = K + 1.



 

 

procedure TForm1.btn3Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm1.btn2Click(Sender: TObject);

begin

mmo1.Lines.Clear;

edt1.Text:='';

edt2.Text:='';

edt3.Text:='';

end;

 

procedure TForm1.btn1Click(Sender: TObject);

var

xn,xk,dx:Real;

x,y:Real;

S:Real;

k,i:Integer;

kod1, kod2, kod3:integer;

begin

val(edt1.Text,xn,kod1);

val(edt2.Text,xk,kod2);

val(edt3.Text,dx,kod3);

if (kod1=0) and (kod2=0) and (kod3=0) then

begin

S:=0; k:=0; i:=0;

x:=xn;

mmo1.Lines.Add('Значения функции в заданных точках' );

while x<=xk do

begin

y:= 3*cos(Sqr(x));

i:=i+1;

if i mod 2=0 then

mmo1.Lines.Add('x='+

FloatToStrF(x,ffFixed,5,2)+

' y='+

FloatToStrF(y,ffFixed,7,2));

if y<>0 then

begin

S:=S+y;

k:=k+1;

end;

x:=x+dx;

end;

if k=0 then

MessageDlg('Ошибка!',

mtError,[mbOk],0)

else

MessageDlg('Среднее

значение функции'+chr(13)

FloatToStrF(S,ffFixed,5,2),

mtInformation,[mbOk],0)

end

else

begin

MessageDlg('Введите число!',mtWarning,[mbOk],0);

edt1.Text:='0.0';

edt2.Text:='0.0';

edt3.Text:='0.0';

end;

end;

 

Задача. Составить таблицу значений функции на отрезке [xn;xk] с шагом dx. Вывести на печать значения x и y. Найти произведение положительных значений y, сумму отрицательных значений y и количество всех значений y.

Входные данные:

начальн. значение аргумента – xn,

конечн. значение аргумента – xk,

шаг изменения аргумента – dx.

Выходные данные:

множество значений X и Y;

S, P, K ;

При умножении нескольких чисел произведение накапливается в определенном участке памяти, например P.

Для выполнения первого оператора из участка памяти необходимо взять такое число, которое не влияло бы на результат умножения, т.е. единицу

P = 1.

Далее, из переменной P считывается предыдущее значение и умножается наследующее

P = P * i.

 

 

procedure TForm1.btn3Click(Sender: TObject);

begin

Close;

end;

 

procedure TForm1.btn2Click(Sender: TObject);

begin

mmo1.Lines.Clear;

edt1.Text:='';

edt2.Text:='';

edt3.Text:='';

lbl4.Visible:=False;

lbl5.Visible:=False;

lbl6.Visible:=False;

edt4.Visible:=False;

edt5.Visible:=False;

edt6.Visible:=False;

mmo1.Visible:=False;

end;

 

procedure TForm1.btn1Click(Sender: TObject);

var

xn,xk,dx:Real;

x,y:Real;

S,P:Real;

k:Integer;

kod1, kod2, kod3:integer;

begin

lbl4.Visible:=true;

lbl5.Visible:=true;

lbl6.Visible:=true;

edt4.Visible:=true;

edt5.Visible:=true;

edt6.Visible:=true;

mmo1.Visible:=true;

val(edt1.Text,xn,kod1);

val(edt2.Text,xk,kod2);

val(edt3.Text,dx,kod3);

if (kod1=0) and (kod2=0) and (kod3=0) then

begin

S:=0; k:=0; P:=1;

x:=xn;

mmo1.Lines.Add('Значения функции' );

while x<=xk do

begin

y:= Power(Sqr(Sin(x)),1/3);

mmo1.Lines.Add('x='+

FloatToStrF(x,ffFixed,5,2)+

' y='+

FloatToStrF(y,ffFixed,7,2));

if y>0 then

P:=P*y

else S:=S+y;

k:=k+1;

x:=x+dx;

end;

edt4.Text:=FloatToStrF(S,

ffFixed,7,2);

edt5.Text:=FloatToStrF(P,

ffFixed,7,2);

edt6.Text:=IntToStr(K);

 

end

else

begin

MessageDlg('Введите число!',mtWarning,[mbOk],0);

edt1.Text:='0.0';

edt2.Text:='0.0';

edt3.Text:='0.0';

end;

end;

procedure TForm1.FormCreate(Sender: TObject);

begin

lbl4.Visible:=False;

lbl5.Visible:=False;

lbl6.Visible:=False;

edt4.Visible:=False;

edt5.Visible:=False;

edt6.Visible:=False;

mmo1.Visible:=False;

end;

 

 

ЗАДАЧА. Вычислить факториал числа N (N!=1×2×3 …×N).

Входные данные:N–целое число.

Выходные данные: factorial значение факториала числа N, произведение чисел от 1 до N, целое число.

Промежуточные переменные:

i– параметр цикла, целочисленная переменная, последовательно принимающая значения 2, 3, 4 и так далее до N.

 

procedure TForm1.Button1Click(Sender: TObject);

var i,N,factorial:integer;

begin

N:=StrToInt(Edit1.Text);

factorial:=1;

for i:=2 to N do

factorial:=factorial*i;

Label2.Caption:=

'N!='+IntToStr(factorial);

end;

ЗАДАЧА. Вычислить an , где n – целое положительное число.

Входные данные:

a – вещественное число

Выходные данные:

p (вещественное число) результат возведения вещественного числа a в целую положительную степень n.

Промежуточные данные:i – целочисленная переменная, принимающая значения от 1 до nс шагом 1, параметр цикла.

 

 

procedure TForm1.Button1Click(Sender: TObject);

var i,n:byte;a,p:real;

begin

a:=StrToFloat(Edit1.Text);

n:=StrToInt(Edit2.Text);

p:=1;

for i:=1 to n do

p:=p*a;

Label3.Caption:='a в степени n равно '+FloatToStr(p);

end;

 

 

ЗАДАЧА. Вычислить сумму натуральных четных чисел, не превышающих N.

Входные данные:N –целое число.

Выходные данные: S сумма четных чисел.

Промежуточные переменные:i – параметр цикла, принимает значения 2, 4, 6, 8 и так далее.

//Решение задачи с

//помощью цикла while:

procedure TForm1.Button1Click(Sender: TObject);

var i,N,S:byte;

begin

N:=StrToInt(Edit1.Text);

S:=0;

i:=2;

while i<=N do

begin

S:=S+i;

i:=i+2;

end;

Label2.Caption:='S= '+IntToStr(S);

end;

//Решение задачи

//с помощью цикла for:

procedure TForm1.Button1Click(Sender: TObject);

var i,N,S:byte;

begin

N:=StrToInt(Edit1.Text);

S:=0;

for i:=2 to N do

if i mod 2 = 0 then

S:=S+i;

Label2.Caption:='S= '+IntToStr(S);

end;

 

ЗАДАЧА. Дано натуральное число N. Определить К – количество делителей этого числа, не превышающих его (Например, для N=12 делители 1, 2, 3, 4, 6. Количество K=5).

Входные данные:N –целое число.

Выходные данные:целое число K количество делителей N.

Промежуточные переменные:i – параметр цикла, возможные делители числа N.

procedure TForm1.Button1Click(Sender: TObject);

var N,i,K:word;

begin

N:=StrToInt(Edit1.Text);

K:=0;

for i:=1 to N div 2 do

if N mod i= 0 then

K:=K+1;

Label2.Caption:='K= '+IntToStr(k);

end;

ЗАДАЧА. Дано натуральное число N. Определить, является ли оно простым. Натуральное число N называется простым, если оно делится нацело без остатка только на единицу и N. Число 13 – простое, так как делится только на 1 и 13, N=12 не является простым, так как делится на 1, 2, 3, 4, 6 и 12.

Входные данные:N –целое число.

Выходные данные: сообщение.

Промежуточные данные: i – параметр цикла, возможные делители числа N.

procedure TForm1.Button1Click(Sender: TObject);

var N,i:integer;

Pr:boolean;

begin

N:=StrToInt(Edit1.Text);

Pr:=true;

for i:=2 to N div 2 do

if N mod i = 0 then

begin

Pr:=false;

break;

end;

if Pr then

MessageDlg('Число '+IntToStr(N)+

'простое.',MtInformation,[mbOk],0)

 

else

MessageDlg('Число '+IntToStr(N)+

' простым не является.',

MtInformation,[mbOk],0);

 

end;



<== предыдущая лекция | следующая лекция ==>
Оператор цикла с заданным числом повторений | Ввод данных из диалогового окна


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 1.671 сек.