Главная страница
Навигация по странице:

метод_рекомендации_1. Методические рекомендации к лабораторным работам по информатике для студентов специальности Информационные системы и технологии



Скачать 2.33 Mb.
Название Методические рекомендации к лабораторным работам по информатике для студентов специальности Информационные системы и технологии
Анкор метод_рекомендации_1.doc
Дата 19.11.2017
Размер 2.33 Mb.
Формат файла doc
Имя файла метод_рекомендации_1.doc
Тип Методические рекомендации
#11331
страница 8 из 9
1   2   3   4   5   6   7   8   9


Таблица 11

Номер варианта

Условие

1

Установить название дня недели по его номеру, например, 1 - понедельник, 2 - вторник и т.д.

2

Определить название месяца по его номеру, например, 1 - январь, 2 - февраль и т.д.

3

Определить название заданной цифры, например 1 - один, 5 - пять и т.д.

4

Дано русское название языка программирования. Определить его английский эквивалент, например: Бейсик - Basic. Для определения использовать таблицу:

Бейсик - Basic, Лисп - Lisp,

Си - С, Фортран - Fortran,

Ада - Ada, ПЛ/1 - PL/1,

Паскаль - Pascal, Пролог- Prolog.

5

Определить английское название заданной цифры, например, 1- one, 7- seven и т.д.

6

Определить название отметки, заданной числом, например, 5-отлично, 2-неудовлетворительно

7

Установить английское название дня недели по его номеру, например, 1-Sunday, 2-Monday и т.д.

8

Определить название арифметической операции по ее изображению, например, + - сложение, * - умножение и т.д.

9

Группу детей, приехавшую в оздоровительный лагерь, распределяют по отрядам по принципу:

с 6 до 7 лет - 5-й отряд

с 7 до 9 лет - 4-й отряд

с 9 до 11 лет - 3-й отряд

с 11 до 13 лет - 2-й отряд

с 13 до 15 лет - 1-й отряд

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

10

Определить английское название месяца по его номеру, например, 1 - January, 2 -February и т.д.

11

Определить название операции отношения по ее изображению, например, = - равно, < > - не равно, >= - не меньше и т.д.

12

Определить служебное слово для обозначения одной из стандартных логических операций в Паскале, например, отрицание - not, исключающее ИЛИ - xor и т.д.

13

Определить название группы музыкантов по количеству участников, например, 1- соло, 2 – дуэт и т.д.

14

Установить название вида линий в модуле Graph Паскаля по его номеру, например, 0 — сплошная, 1 — пунктирная и т.д.


Лабораторная работа 4 «Программирование на Delphi циклических алгоритмов»

Цель работы:

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

2. Овладеть навыками программирования на языке

Delphi алгоритмов циклической структуры с

заданным числом повторений.

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

Различают циклы с параметрами и циклы с условием. Для программирования циклов с параметром в Delphi используют оператор for.

Формат оператора:

for v := а1 to а2 do оператор;

v – переменная цикла – переменная порядкового типа,

a1- выражение целого типа, задающее начальное значение переменной цикла,

a2 - выражение целого типа, задающее конечное значение переменной цикла.

оператор – оператор, выполнение которого будет повторяться (оператор тела

цикла).

Если нужно сделать цикл по убыванию, то оператор for записывается в виде

for v: =a1 downto a2 do оператор;

Оператор работает так же, но шаг переменной цикла –1.

Для программирования циклов с условием в Delphi существуют оператор цикла с предусловием WHILE и оператор цикла с постусловием REPEAT.

Формат операторов: while условие do оператор;

repeat операторы until условие;

условие – логическое выражение.

В операторе while сначала вычисляется логическое выражение и если оно истинно, то выполняется оператор. После этого управление возвращается в начало цикла на вычисление логического выражения. Если условие ложно, оператор завершает работу и управление передается на следующий оператор.

В операторе repeat сначала выполняются операторы, и только потом вычисляется логическое выражение. Если оно ложно, то управление возвращается в начало цикла, повторяется выполнение операторов тела цикла. Если условие истинно – то выход из цикла.

Пример 6. Приписать к 523*** три такие цифры справа, чтобы полученное шестизначное число делилось на 7, на 8, на 9.

Использованные компоненты:

Label1 – для вывода результата;

BitBtn1 – для запуска программы;

BitBtn2 – для выхода из программы.



Рис. 14. Форма примера 6

Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons;

type

TForm1 = class(TForm)

Label1: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

var s,a,b,c,n: integer;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

for n:=0 to 999 do

begin

s:=523000+n;

a:=s mod 7;

b:=s mod 8;

c:=s mod 9;

if (a=0) and (b=0) and (c=0) then label1.Caption:='523..'+inttostr(n);

end;

end;

end.
Пример 7. Подсчитать сумму ряда: s=1-2+3-4+5- ... для заданного числа

членов.

Использованные компоненты:

Edit1 – для ввода числа членов n;

Label6 – для вывода результата;

Button1 – для запуска программы.

Рис. 15. Форма примера 7
Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Label1: TLabel;

Button1: TButton;

Label6: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var i, n: integer; s:real;

begin

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

for i:=1 to n do

if odd(i) then {ïðîâåðêà íå÷åòíîñòè íîìåðà}

s:=s + i

else

s:=s - i;

Label6.Caption:= 's='+ FloatToStr(s);

end;

end.

Пример 8. Алгоритм Евклида для подсчета НОД (наибольшего общего делителя) двух натуральных чисел.

Использованные компоненты:

Label3 ­– для вывода результата;

Edit1 – для ввода первого числа;

Edit2 – для ввода второго числа;

BitBtn1 – для запуска программы;

BitBtn2 – для выхода из программы.



Рис. 16. Форма примера 8

Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls, Buttons;

type

TForm1 = class(TForm)

Label1: TLabel;

Label2: TLabel;

Edit2: TEdit;

Label3: TLabel;

BitBtn1: TBitBtn;

BitBtn2: TBitBtn;

Edit1: TEdit;

procedure BitBtn2Click(Sender: TObject);

procedure BitBtn1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

var

a,b,x,y,z:integer;

procedure TForm1.BitBtn2Click(Sender: TObject);

begin

close;

end;

procedure TForm1.BitBtn1Click(Sender: TObject);

begin

a:=strtoint(edit1.Text); b:=strtoint(edit2.Text);

x:=a; y:=b;

while (x<>y) do

if x>y then x:=x-y

else y:=y-x;

z:=x;

label3.Caption:='НОД= '+inttostr(z);

end;

end.

Пример 9. Вычислить сумму членов ряда



с точностью до члена ряда, меньшего Е.

Использованные компоненты:

Edit1 – для ввода точности;

Label6 – для вывода результата;

Button1 – для запуска программы.

Рис. 17. Форма примера 9

Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Label1: TLabel;

Button1: TButton;

Label6: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var n:integer;

s,z,e:real;

begin

e:=strtofloat(edit1.Text);

n:=1; z:=1/6; s:=0;

while abs(z)>=e do

begin

s:=s+z;

n:=n+1;

z:=n/((n+1)*(n+2));

end;

label6.Caption:='Сумма= '+floattostr(s);

end;

end.

Пример 10. Вычислить кубический корень из числа m методом Ньютона по формуле:



Вычисления продолжать пока не станет меньше заданной точности Е.

Использованные компоненты:

Label6 – для вывода результата;

Edit1 – для ввода числа m;

Edit2 – для ввода точности;

Button1 – для запуска программы.



Рис. 18. Форма примера 10

Программный код

unit Unit1;

interface

uses

Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,

Dialogs, StdCtrls;

type

TForm1 = class(TForm)

Edit1: TEdit;

Label1: TLabel;

Button1: TButton;

Label6: TLabel;

Edit2: TEdit;

Label2: TLabel;

procedure Button1Click(Sender: TObject);

private

{ Private declarations }

public

{ Public declarations }

end;

var

Form1: TForm1;

implementation

{$R *.dfm}

procedure TForm1.Button1Click(Sender: TObject);

var x1,x2,d,e,m:real;

begin

m:=strtofloat(edit1.Text);

e:=strtofloat(edit2.Text);

x1:=m;

repeat

x2:=2/3*x1+m/3/sqr(x1);

d:=abs(x1-x2);

x1:=x2;

until d<=e;

label6.Caption:='Корень= '+floattostr(x2);

end;

end.

Порядок работы
1. Выполнить программы примеров 6, 7. Подготовить тесты для проверки правильности работы программ, провести отладку, проанализировать результаты. Сохранить программы на диске.

2. Разработать алгоритм и программу примера из таблицы 12. Выполнить программу, проанализировать результаты.

3. Разработать алгоритм и программу для вычисления суммы с заданным числом членов (табл. 13). Получить результат, проанализировать его.

4. Выполнить программы примеров 8, 9, 10. Подготовить тесты для проверки правильности работы программ, провести отладку, проанализировать результаты. Сохранить программы на диске.

5. Разработать алгоритм и программу для примера из таблицы 14. Выполнить программу, проанализировать результаты (предложить два варианта программы с операторами WHILE и REPEAT).

Таблица 12


Номер варианта

Условие

1

Найти все трехзначные числа, равные сумме кубов своих цифр.

2

Найти все двузначные числа, сумма цифр которых не меняется при умножении числа на 2,3,4,5,6,7,8,9.

3

Найти все трехзначные числа, сумма цифр которых равна данному целому числу.

4

Найти все трехзначные числа, квадраты которых оканчиваются тремя одинаковыми цифрами, отличными от нуля.

5

В магазине имеется мастика в ящиках по 16 кг, 17 кг и 21 кг. Получить 185 кг мастики без вскрытия ящиков. Рассмотреть все варианты.

6

Представить в записи 42*4* вместо звездочек такие цифры, чтобы полученное пятизначное число делилось на 72.

7

Найти все трехзначные числа кратные 7 и сумма цифр, которых тоже кратна 7.

8

Найти четырехзначное число, которое при делении на 133 дает в остатке 125, а при делении на 134 дает в остатке 111.

9

Решить арифметический ребус КИО*ИО= ТОКИО. Вместо каждой буквы необходимо поставить некоторую цифру, причем одинаковые буквы означают одинаковые цифры, а различные буквы - различные цифры.

10

Сократить дробь, имеющую данные числитель а и знаменатель b. Предусмотреть выделение целой части в случае a > b.

11

Определить сколько делителей и какие имеет данное натуральное число.

12

Найти сумму делителей данного натурального числа.

13

Найти все "пифагоровы" тройки натуральных чисел, наибольшее из которых не превосходит n (Тройка натуральных чисел называется пифагоровой, если сумма квадратов двух из них равна квадрату третьего).

14

Найти все четырехзначные числа, у которых сумма первых двух цифр равна сумме двух последних.



Таблица 13

Номер варианта

Условие

1



2



3



4



5



6



7



8



9



10



11



12



13



14


1   2   3   4   5   6   7   8   9
написать администратору сайта