Основы программирования

Программирование линейных алгоритмов. Нахождение площади грани, полной поверхности и объема куба. Реализация алгоритма на языке Pascal. Составление программы, которая печатает таблицу умножения и сложения натуральных чисел в десятичной системе счисления.

Рубрика Программирование, компьютеры и кибернетика
Вид контрольная работа
Язык русский
Дата добавления 17.10.2017
Размер файла 2,2 M

Отправить свою хорошую работу в базу знаний просто. Используйте форму, расположенную ниже

Студенты, аспиранты, молодые ученые, использующие базу знаний в своей учебе и работе, будут вам очень благодарны.

Размещено на http://www.allbest.ru//

Размещено на http://www.allbest.ru//

1. Программирование линейных алгоритмов

Задача 1 (1.1.С)

Вычислить значение выражения по формуле (все переменные имеют действительный тип):

.

1.1.1 Математическое описание задачи

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

Входными переменными для данного выражения являются переменные x и y. Вычисление данного выражения происходит в порядке приоритетов математических операций:

1. Вычисляется сумма выражения ;

2. Вычисляется разность выражения ;

3. Вычисляется деление выражений ;

3. Вычисляется произведение выражений .

Выходной переменной будет переменная z, .

1.1.2 Словесно формульное описание задачи

1. Считать ввод числа с клавиатуры в переменную x, перейти к п. 2.

2. Считать ввод числа с клавиатуры числа в переменную y, перейти к п. 3.

3. Вычислить значение выражения z, перейти к п. 4.

4. Вывести на экран значение выражения z.

1.1.3 Блок схема алгоритма

1.1.4 Реализация алгоритма на языке Pascal

Program Zadacha1;

uses crt;

var x,y,z:real;

Begin

write('Введите через пробел x и y: ');

readln(x,y);

z:=(sin(pi/180*x)+cos(pi/180*x))/(cos(pi/180*x)-sin(pi/180*x))*(sin(pi/180*x*y)/cos(pi/180*x*y));

writeln('z= ',z:5:3);

readln;

End.

1.1.5 Тестирование алгоритма задачи

1.2 Задача 2 (1.9)

Даны длины ребра куба. Найти площадь грани, площадь полной поверхности и объем этого куба.

1.2.1 Математическое описание задачи

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

Входной переменной в данной задаче будет длина ребра a. Из курса математики известно, что куб - это правильный многогранник, каждая грань которого представляет собой квадрат (рисунок 1.1). Площадь грани куба равняется квадрату грани куба - a2, площадь полной поверхности есть сумма площадей всех 6 граней куба - 6a2, объем куба - a3.

Выходными переменными соответственно будут являться площадь грани - Sgrani, площадь полной поверхности Spov, объем куба - Vkuba.

Рисунок 1.1

1.2.2 Словесно формульное описание задачи

1. Считать ввод числа c клавиатуры в переменную a, перейти к п. 2.

2. Вычислить значение выражения Sgrani, перейти к п. 3.

3. Вычислить значение выражения Spov, перейти к п. 4.

4. Вычислить значение выражения Vkuba, перейти к п. 5.

5. Вывести на экран значение выражения Sgrani, перейти к п. 6.

6. Вывести на экран значение выражения Spov, перейти к п. 7.

7. Вывести на экран значение выражения Vkuba.

1.2.3 Блок схема алгоритма

1.2.4 Реализация алгоритма на языке Pascal

Program Zadacha2;

uses crt;

var a,Sgrani,Spov,Vkuba:real;

Begin

write('Введите ребро куба а = ');

readln(a);

Sgrani:=sqr(a);

Spov:=6*sqr(a);

Vkuba:=a*sqr(a);

writeln('Прощадь грани куда = ',Sgrani:5:3);

writeln('Прощадь полной поверхности = ',Spov:5:3);

writeln('Объем куба = ',Vkuba:5:3);

readln;

End.

1.2.5 Тестирование алгоритма задачи

1.3 Выводы по линейным алгоритмам

В данной теме решены две задачи. Суть линейных алгоритмов сводится к последовательности операций, выполняющихся только один раз в порядке следования. Всем задачам по данной теме дано математическое обоснование их решения, составлены словесно формульные описания, составлены блок-схемы, и реализованы программы по данным схемам в алгоритмическом языке Pascal. Проведенные тесты свидетельствую о правильности выполнения реализованных алгоритмов в каждой задаче.

2. Программирование ветвящихся алгоритмов

2.1 Задача 3 (2.3)

2.1.1 Математическое описание задачи

Даны два угла треугольника (в градусах). Определить существует ли такой треугольник. Если да, то будет ли он прямоугольным.

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

Согласно теореме из геометрии - Сумма углов треугольника на евклидовой плоскости равна 180° (рисунок 2.1). Треугольник будет существовать, если два данных угла в сумме будут меньше 180°, или треугольник не будет существовать, если сумма двух углов больше или равна 180°.

Рисунок 2.1

Из геометрии известно, что если один из углов треугольника прямой (равен 90°), то треугольник называется прямоугольным (рисунок 2.2). Две стороны, образующие прямой угол, называются катетами, а сторона, противолежащая прямому углу, называется гипотенузой.

Треугольник будет прямоугольным, если один из заданных углов будет равен 90°, или же если сумма этих углов будет равна 90°.

Входными переменными в задаче будут 2 угла: и .

Выходными данными будут являться следующие утверждения:

треугольник с такими углами существует;

треугольник с такими углами не существует;

треугольник с такими углами является прямоугольным;

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

Рисунок 2.2

2.1.2 Словесно формульное описание задачи

1. Считать ввод числа с клавиатуры числа в переменную A, перейти к п. 2.

2. Считать ввод числа с клавиатуры числа в переменную B, перейти к п. 3.

3. Если сумма введенных углов больше или равна 180 градусам, вывести на экран сообщение “ Треугольник с такими углами не существует ” и перейти к пункту 6.

4. Если сумма введенных углов меньше 180 градусов, вывести на экран сообщение “ Треугольник с такими углами существует ” и перейти к пункту 5.

5. Если сумма введенных углов равна 90 градусам или один из углов А или B равен 90 градусам, вывести на экран сообщение “ Треугольник с такими углами является прямоугольным” и перейти к пункту 6, в противном случае вывести на экран сообщение “ Треугольник с такими углами не является прямоугольным” и перейти к пункту 6.

6. Конец программы.

2.1.3 Блок схема алгоритма

2.1.4 Реализация алгоритма на языке Pascal

Program Zadacha3;

uses crt;

var A,B:real;

Begin

write('Введите через пробел два угла треугольника A и B: ');

readln(A,B);

If (A+B<180) then

begin

writeln('Треугольник с углами A =',A:5:2,' B =', B:5:2,' существует');

if (A+B=90) or (A=90) or (B=90) then

writeln('Треугольник с углами A =',A:5:2,' B =', B:5:2,' является прямоугольным')

else writeln('Треугольник с углами A =',A:5:2,' B =', B:5:2,' не вляется прямоугольным');

end

Else writeln('Треугольник с углами A =',A:5:2,' B =', B:5:2,' не существует');

readln;

End.

2.1.5 Тестирование алгоритма задачи

2.2 Задача 4 (2.9)

Определить, является ли целое число N четным двузначным числом.

2.2.1 Математическое описание задачи

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

Чётность в теории чисел это - характеристика целого числа, определяющая его способность делиться нацело на два. Соответственно четными числами будут ?8, ?6,?4, ?2, 0, 2, 4, 6, 8, … и т. д.

Двузначные числа имеют диапазон 10, 11, 12, 13, 14, 15,…99. То есть имеют 2 цифры в числе.

Чтобы определить является число четным или нет, будем использовать функцию mod (N mod 2), которая будет делить наше число напополам и вычислять остаток от деления, если остаток будет равняться нулю, то данное число будет являться четным, в противном случае оно будет нечетным.

Чтобы определить является число двузначным или нет, будет использовать функцию div (N div 10). Если целая часть от деления на число 10 будет являться число в диапазоне от 1 до 9, то это число будет являться двузначным, в противном случае оно будет не двузначным.

Пример: 45 div 10 = 4 (1<4<9) - число двузначное, а 450 div 10 = 45 (45>9) - число не является двузначным.

Входной переменной в задаче будет целое число N.

Выходными данными будут являться следующие утверждения:

число является четным;

число является нечетным;

число является двузначным;

число не является двузначным.

2.2.2 Словесно формульное описание задачи

1. Считать ввод числа с клавиатуры числа в переменную N, перейти к п. 2.

2. Если число N делится на 2 без остатка то, вывести на экран сообщение “ Число является четным ”, в противном случае вывести на экран сообщение “ Число не является четным ” и перейти к пункту 3.

3. Если при делении числа N на 10 остаток в диапазоне от 1 до 9 то, вывести на экран сообщение “ Число является двузначным”, в противном случае вывести на экран сообщение “ Число не является двузначным ” и перейти к пункту 4.

4. Конец программы.

2.2.3 Блок схема алгоритма

2.2.4 Реализация алгоритма на языке Pascal

Program Zadacha4;

uses crt;

var N:integer;

Begin

write('Введите число N = ');

readln(N);

if (N mod 2 = 0) then writeln('Число является четным') else writeln('Число является нечетным');

if (N div 10>=1) and (N div 10<=9)

then writeln('Число является двузначным') else writeln('Число не является двузначным');

readln;

End.

2.2.5 Тестирование алгоритма задачи

2.3 Задача 5 (2.36)

Дано число x. Напечатать в порядке возрастания числа sin x, cos x, ln x. Если при каком-либо х некоторые из выражений не имеют смысла, вывести соответствующее сообщение об этом и сравнивать значения только тех, которые имеют смысл.

2.3.1 Математическое описание задачи

Из курса тригонометрии известно, что область определения функции sin(x) и cos(x) являются все действительные числа (рисунок 2.3 и 2.4).

Рисунок 2.3

Рисунок 2.4

Если рассматривать натуральный логарифм как вещественную функцию действительной переменной, то она является обратной функцией к экспоненциальной функции, и область ее определения являются все числа больше нуля (рисунок 2.5). Таким образом функция ln(x) не будет иметь смысла, если x<0.

Рисунок 2.5

Чтобы напечатать в порядке возрастания 3 числа, необходимо их сравнить. Пусть a, b, c - числа для сравнения. Комбинаций чисел, стоящих в порядке возрастания может быть 6:

a, b, c

b, a, c

b, c, a

c, b, a

a, c, b

c, a, b

Выведем алгоритм расстановки 3 чисел по возрастанию.

Если число a>b и если число a>c то число a будет максимальным из трех. Далее сравним числа b и c. Если число b>c, то число с является минимальным и вывод будет - с, b, a; если же b<c, то вывод будет - b, с, a.

Если число a>b, но число a<c, то вывод будет - b, a, c.

Если число a<b и если число b>c то число b будет максимальным из трех. Cравним числа a и с. При a>c вывод будет - c, a, b; иначе вывод будет - a, c, b.

Если число a<b, но число b<c вывод будет - a, b, c.

Пусть a=sin(x); b=cos(x); c=ln(x). Если x<0 то функция ln(x) не будет иметь смысл, и будут сравниваться только два числа a и b, в противном случае будет работать алгоритм сравнения трех чисел, представленный выше.

2.3.2 Словесно формульное описание задачи

1. Считать ввод числа с клавиатуры числа в переменную x, перейти к п. 2.

2. Если x<0, вывести на экран сообщение “ Функция ln(x) при данном x не имеет смысла ”, перейти к пункту 3, в противном случае перейти к пункту 5.

3. Вычислить значения a=sin(x); b=cos(x), перейти к пункту 4.

4. Если a>b, вывести на экран “ b; a ” в противном случае вывести на экран “ a; b ” и перейти к пункту 5.

5. Вычислить значения a=sin(x); b=cos(x), c=ln(x), перейти к пункту 6.

6. Если a>b перейти к пункту 7, в противном случае перейти к пункту 9.

7. Если a>с перейти к пункту 8, в противном случае вывести на экран “ b; a; c ”.

8. Если b>с вывести на экран “ с; b; a ”, в противном случае вывести на экран “ b; c; a ”, перейти к пункту 11.

9. Если b>с перейти к пункту 10, в противном случае вывести на экран “ a; b; c ”.

10. Если a>с вывести на экран “ с; a; b ”, в противном случае вывести на экран “ a; c; b ”, перейти к пункту 11.

11. Конец программы.

2.3.3 Блок схема алгоритма

2.3.4 Реализация алгоритма на языке Pascal

Program Zadacha5;

uses crt;

var x,a,b,c:real;

Begin

write('Введите число x= ');

readln(x);

if (x>0) then begin

a:=sin(pi/180*x); b:=cos(pi/180*x); c:=ln(x);

if (a>b) then

begin

if (a>c) then begin

if (b>c) then writeln('ln(x)= ',c:5:3,' cos(x)= ',b:5:3,' sin(x)= ',a:5:3)

else writeln('cos(x)= ',b:5:3,' ln(x)= ',c:5:3,' sin(x)= ',a:5:3)

end

else writeln ('cos(x)= ',b:5:3,' sin(x)= ',a:5:3,' ln(x)= ',c:5:3)

end

else

if (b>c) then

begin

if (a>c) then writeln('ln(x)= ',c:5:3,' sin(x)= ',a:5:3,' cos(x)= ',b:5:3)

else writeln('sin(x) = ',a:5:3,' ln(x)= ',c:5:3,' cos(x)= ',b:5:3)

end

else writeln('sin(x)= ',a:5:3,' cos(x)= ',b:5:3,' ln(x)= ',c:5:3);

end

else begin

writeln('Функция ln(x) не имеет смысла');

a:=sin(pi/180*x); b:=cos(pi/180*x);

if (a>b) then writeln('cos(x)= ',b:5:3,' sin(x)= ',a:5:3)

else writeln('sin(x)= ',a:5:3,' cos(x)= ',b:5:3);

end;

readln;

End.

2.3.5 Тестирование алгоритма задачи

Выводы по ветвящимся алгоритмам

В данной теме решены три задачи. Суть ветвящихся алгоритмов в том, что из блока может выходить два и более потока данных. Таким блоком является блок условия, внутри блока записывается логическое выражение по которому определяется дальнейшие переходы в программе. Всем задачам по данной теме дано математическое обоснование их решения, составлены словесно формульные описания, составлены блок-схемы, и реализованы программы по данным схемам в алгоритмическом языке Pascal. Проведенные тесты свидетельствую о правильности выполнения реализованных алгоритмов в каждой задаче.

3. Программирование циклических алгоритмов

3.1 Задача 6 (3.7)

Составить программу для проверки утверждения: «результатами вычислений по формуле x2+x+17 при 0?х?15 являются простые числа». Все результаты вывести на экран.

3.1.1 Математическое описание задачи

Простое число - это натуральное число, имеющее ровно два различных натуральных делителя: единицу и само себя.

Чтобы проверить является ли число y простым, зададим цикл, в котором будем выполнять проверку деления этого на числа от 1 до y. Пусть k - количество чисел, являющиеся делителями числа y. Так как простое число имеет два различных натуральных делителя, то при k=2 число y будет простым, при k>2 число y будет являться составным.

3.1.2 Словесно формульное описание задачи

1. Выполнять цикл с пункта 2 по пункт 5 для всех x отвечающих условию 0?х?15, далее перейти к пункту 6.

2. Вычислить k=0; y= x2+x+17, перейти к пункту 3.

3. Выполнять цикл для пункта 4 для всех i отвечающих условию 0?i?y, далее перейти к пункту 5.

4. Если y mod i=0, то вычислить k=k+1, перейти к пункту 5.

5. Если k=2 вывести на экран “При данном x число y - простое”, в противном случае вывести на экран “При данном x число y - составное”

6. Конец программы.

3.1.3 Блок схема алгоритма

3.1.4 Реализация алгоритма на языке Pascal

Program Zadacha6;

uses crt;

var x,y,k,i:integer;

Begin clrscr;

For x:=0 to 15 do

begin

k:=0;

y:=sqr(x)+x+17;

For i:=1 to y do

begin

if (y mod i = 0) then k:=k+1;

end;

if k=2 then writeln('При x=',x, ' k=',k,' y=',y,' - является простым числом')

else writeln('При x=',x, ' k=',k,' y=',y,' - является составным числом');

end;

readln;

End.

3.1.5 Тестирование алгоритма задачи

линейный алгоритм программа число

3.2 Задача 7 (3.12)

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

3.2.1 Математическое описание задачи

Таблица умножения, она же таблица Пифагора -- таблица, где строки и столбцы озаглавлены множителями, а в ячейках таблицы находится их произведение. Для составления таблицы умножения создадим 2 цикла, перемножая строки и столбцы в циклах согласно правилу z=i*j.

Таблицу сложения чисел будем формировать по правилу: z=i+j.

3.2.2 Словесно формульное описание задачи

1. Вывести на экран сообщение “ Таблица умножения натуральных чисел”, перейти к пункту 2.

2 Выполнять цикл с пункта 3 по пункт 5 для всех i отвечающих условию 1?i?9, далее перейти к пункту 6.

3. Выполнять цикл с пункта 4 по пункт 5 для всех j отвечающих условию 1?j?9, далее перейти к пункту 2.

4. Вычислить z= i*j, перейти к пункту 5.

5. Вывести на экран “ z ”, перейти к пункту 3.

6. Вывести на экран сообщение “ Таблица сложения натуральных чисел”, перейти к пункту 7.

7 Выполнять цикл с пункта 8 по пункт 10 для всех i отвечающих условию 1?i?9, далее перейти к пункту 11.

8. Выполнять цикл с пункта 9 по пункт 10 для всех j отвечающих условию 1?j?9, далее перейти к пункту 7.

9. Вычислить z= i+j, перейти к пункту 10.

10. Вывести на экран “ z ”, перейти к пункту 8.

11. Конец программы.

3.2.3 Блок схема алгоритма

3.2.4 Реализация алгоритма на языке Pascal

Program Zadacha7;

uses crt;

var i,j,z:integer;

Begin

clrscr;

writeln('Таблица умножения натуральных чисел');

for i:=1 to 9 do

begin

for j:=1 to 9 do

begin

z:=i*j;

write(z,' ');

end;

writeln;

end;

writeln;

writeln('Таблица сложения натуральных чисел');

for i:=1 to 9 do

begin

for j:=1 to 9 do

begin

z:=i+j;

write(z,' ');

end;

writeln;

end;

readln;

End.

3.2.5 Тестирование алгоритма задачи

3.3 Задача 8 (3.21)

Дано натуральное число N. Вычислить произведение первых N множителей:

.

3.3.1 Математическое описание задачи

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

3.3.2 Словесно формульное описание задачи

1. Считать ввод числа с клавиатуры числа в переменную N, перейти к п. 2.

2. Вычислить P= 0, перейти к пункту 3.

3. Выполнять цикл пункта 4 для всех i отвечающих условию 1?i?N, далее перейти к пункту 4.

3. Вычислить P= P + 2*i/(2*i+1), перейти к пункту 3.

5. Вывести на экран “ P ”, перейти к пункту 6.

6. Конец программы.

3.3.3 Блок схема алгоритма

3.3.4 Реализация алгоритма на языке Pascal

Program Zadacha8;

uses crt;

var N,i:integer; P:real;

Begin

write('Введите натуральное число N = ');

readln(N);

P:=0;

for i:=1 to N do

P:=P+2*i/(2*i+1);

writeln('P= ',P:5:3);

readln;

End.

3.3.5 Тестирование алгоритма задачи

3.4 Задача 9 (3.27)

Дано действительное число a, натуральное число n. Вычислить:

.

3.4.1 Математическое описание задачи

Для реализации данной задачи необходимо задать цикл с параметром, проходя его n раз и складывая каждый раз N-ый множитель с прошлой суммой множителей, причем начальное значение n=2. Алгоритм возведения числа в степень также зададим с помощью второго цикла с параметром, умножая число a само на себя 2n-2 раз при каждом проходе относительно первого цикла.

3.4.2 Словесно формульное описание задачи

1. Считать ввод числа с клавиатуры в переменную n, перейти к п. 2.

2. Считать ввод числа с клавиатуры в переменную a, перейти к п. 3.

3. Вычислить S= 1/a, перейти к пункту 4.

4. Если n=1 вывести на экран “ S ” и перейти к пункту 11, иначе перейти к пункту 5.

5. Выполнять цикл с пункта 6 по пункт 9 для всех i отвечающих условию 2?i?n, далее перейти к пункту 10.

6. Вычислить avst = 1 (присвоить начальный множитель возведения в степень единице) и шаг step=2*i-2 (степень числа), перейти к пункту 7.

7. Выполнять цикл пункта 8 для всех j отвечающих условию 1?j?step, далее перейти к пункту 9.

8. Вычислить avst = avst*a.

9. Вычислить S:=S+1/avst, перейти к пункту 5.

10. Вывести на экран “ S ”, перейти к пункту 11.

11. Конец программы.

3.4.3 Блок схема алгоритма

3.4.4 Реализация алгоритма на языке Pascal

Program Zadacha9;

uses crt;

var n,i,j,step:integer; a,avst,S:real;

Begin

write('Введите натуральное число n = ');

readln(n);

write('Введите действительное число a =');

readln(a);

S:=1/a;

if n=1 then writeln('S= ',S:5:3)

else begin

for i:=2 to n do

begin

avst:=1; step:=2*i-2;

for j:=1 to step do

avst:=avst*a;

S:=S+1/avst;

end;

writeln('S= ',S:5:3);

end;

readln;

End.

3.4.5 Тестирование алгоритма задачи

Выводы по циклическим алгоритмам

В данной теме решены четыре задачи. Суть циклических алгоритмов в том, что последовательность определенных операторов, могут выполняться более одного раза. В решенных задачах реализованы циклы с параметрами в комбинации с уже изученными ветвящимися и линейными алгоритмами. Всем задачам по данной теме дано математическое обоснование их решения, составлены словесно формульные описания, составлены блок-схемы, и реализованы программы по данным схемам в алгоритмическом языке Pascal. Проведенные тесты свидетельствую о правильности выполнения реализованных алгоритмов в каждой задаче.

4. Работа с массивами

4.1 Задача 10 (4.2)

В целочисленной последовательности есть нулевые элементы. Создать массив из номеров этих элементов.

4.1.1 Математическое описание задачи

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

4.1.2 Словесно формульное описание задачи

1. Вывести на экран “ Дана следующая последовательность ”.

2. Выполнять цикл пункта 3 для всех i отвечающих условию 1?i?n, далее перейти к пункту 4.

3. Заполнить массив случайными числами, перейти к пункту 2.

4. Выполнять цикл пункта 5 для всех i отвечающих условию 1?i?n, далее перейти к пункту 6.

5. Вывести на экран i элемент массива, перейти к пункту 4.

6. Вывести на экран “ Массив из номеров нулевых элементов ”.

7. Выполнять цикл с пункта 8 по 11 для всех i отвечающих условию 1?i?n, далее перейти к пункту 12.

8. Если i элемент массива равен нулю, то перейти к пункту 9, иначе перейти к пункту 7.

9. Второму элементу массива с индексом j присвоить порядковый номер первого массива i, перейти к пункту 10.

10. Вывести на экран массив с j -тым элементом, перейти к пункту 11.

11. Вычислить j=j+1, перейти к пункту 7.

12. Конец программы.

4.1.3 Блок схема алгоритма

4.1.4 Реализация алгоритма на языке Pascal

Program Zadacha10;

uses crt;

const N=50;

var a:array[1..N] of integer;

b:array[1..N] of integer;

i,j:integer;

Begin clrscr; j:=1;

writeln('Дана следующая последовательность:');

for i:=1 to N do

a[i]:=random(10);

for i:=1 to N do

write(a[i],' ');

writeln;

writeln('Массив из номеров нулевых элементов последовательности:');

for i:=1 to N do

begin

if a[i]=0 then begin

b[j]:=i;

write(b[j],' ');

j:=j+1;

end;

end;

readln;

End.

4.1.5 Тестирование алгоритма задачи

4.2 Задача 11 (4.8)

Последовательность действительных чисел оканчивается нулем. Найти количество членов этой последовательности.

4.2.1 Математическое описание задачи

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

4.2.2 Словесно формульное описание задачи

1. Вывести на экран “ Введите последовательность с нулевым элементом ”.

2. Выполнять цикл пункта 3 для всех i отвечающих условию 1?i?n, далее перейти к пункту 4.

3. Заполнить элемент массива с клавиатуры, перейти к пункту 2.

4. Если i-ый элемент массива не равен нулю выполнять пункт 5, иначе перейти к пункту 6.

5. Вычислить i=i+1 элемент, перейти к пункту 4.

6. Вывести на экран “Количество членов последовательности = i ”, перейти к пункту 7.

7. Конец программы.

4.2.3 Блок схема алгоритма

4.2.4 Реализация алгоритма на языке Pascal

Program Zadacha11;

uses crt;

const N=10;

var a:array[1..N] of integer;

i:integer;

Begin clrscr;

writeln('Введите последовательность с нулевым элементом: ');

for i:=1 to N do

readln(a[i]);

i:=1;

While (a[i]<>0) do

begin

i:=i+1;

end;

writeln('Количество членов последовательности = ',i);

readln;

End.

4.2.5 Тестирование алгоритма задачи

4.3 Задача 12 (4.133)

Сформировать квадратную матрицу порядка n по заданному образцу.

n 0 0 … 0 0 0

0 n-1 0 … 0 0 0

0 0 n-2 …0 0 0

. . . . . .

0 0 0 … 0 2 0

0 0 0 … 0 0 1

4.3.1 Математическое описание задачи

Для реализации данной задачи будем использовать двумерный массив a[i,j]. Согласно условию задачи, на главной диагонали квадратной матрицы должны быть выведены числа по закону n+1- i, где i - номер строки массива при очередном проходе цикла. В случае если i-ая строка не будет равняться j-му столбцу то, будем присваивать каждому элементу данного условия нуль. Количество элементов в массиве примем 20, т.е. n=20.

4.3.2 Словесно формульное описание задачи

1. Вывести на экран “ Сформированная квадратная матрица ”.

2. Выполнять цикл пункта 3 для всех i отвечающих условию 1?i?n, далее перейти к пункту 5.

3. Выполнять цикл пункта 4 для всех j отвечающих условию 1?j?n, далее перейти к пункту 2.

4. Если i=j то выполнить a[i,j]=N+1-j и иначе выполнить a[i,j]=0, перейти к пункту 3.

5. Выполнять цикл пункта 6 для всех i отвечающих условию 1?i?n, далее перейти к пункту 8.

6. Выполнять цикл пункта 7 для всех j отвечающих условию 1?j?n, далее перейти к пункту 5.

7. Вывести на экран “ a[i,j] ”, перейти к пункту 6.

8. Конец программы.

4.3.3 Блок схема алгоритма

4.3.4 Реализация алгоритма на языке Pascal

Program Zadacha11;

uses crt;

const N=20;

var a:array[1..N,1..N] of integer;

i,j:integer;

Begin clrscr;

writeln('Сформированная квадратная матрица: ');

writeln;

for i:=1 to N do

for j:=1 to N do

if i=j then a[i,j]:=N+1-i else a[i,j]:=0;

for i:=1 to N do

begin

for j:=1 to N do

write(a[i,j],' ');

writeln;

end;

readln;

End.

4.3.5 Тестирование алгоритма задачи

Выводы по работе с масивами

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

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

1. Симинович С., Евсеев Г., Практическая информатика, учебное пособие, М.: АСТ-пресс, 2000 г.

2. Фаронов, Turbo Pascal 7.0, M.: Инфа-М, 1998 г.

3. Могилев А. В., Пак Н. И., Хеннер Е. К., Информатика, Учебное пособие для студ. Пед. Вузов, 2-е изд., М.: Изд. Центр “Академия” 2001 г.

4. Немнюгин С. А., Turbo Pascal/ C. А. Немнюгин. - Спб.: Питер, 2003 г.

5. Немнюгин С. А., Turbo Pascal: практикум/ C. А. Немнюгин. - Спб.: Питер, 2001 г.

Размещено на Allbest.ru

...

Подобные документы

  • Целые числа в позиционных системах счисления. Недостатки двоичной системы. Разработка алгоритмов, структур данных. Программная реализация алгоритмов перевода в различные системы счисления на языке программирования С. Тестирование программного обеспечения.

    курсовая работа [593,3 K], добавлен 03.01.2015

  • Программирование и структура программы на языке Turbo Pascal и MS Visual C++6.0. Вычисление площади круга. Реализация программы в системе Turbo Pascal и MS VISUAL C++6.0 для Windows. Структура окна ТРW. Сохранение текста программы в файле на диске.

    лабораторная работа [3,7 M], добавлен 22.03.2012

  • Разработка программы, которая выявляет в прямоугольной матрице все подматрицы, состоящие только из m-значных целых чисел. Использование компилируемого языка программирования общего назначения C/C++. Обработка алгоритмов, кодирование программных средств.

    курсовая работа [980,1 K], добавлен 05.03.2015

  • Основные типы модулей, использующиеся в среде программирования Delphi 6. Концепция объектно-ориентированного программирования. Разработка эскизного и технического проектов программы. Алгоритм выполнения операций сложения, вычитания и умножения матриц.

    курсовая работа [559,1 K], добавлен 03.01.2011

  • Оценка погрешности и точности в математике. Составление программы и алгоритма для численного дифференцирования с заданной допустимой погрешностью на алгоритмическом языке Turbo Pascal 7.0. Составление алгоритма и программы аппроксимации функции.

    курсовая работа [810,6 K], добавлен 24.03.2012

  • Теория чисел как одно из направлений математики, изучающее свойства натуральных чисел. Разработка программы-калькулятора CalcKurs на языке программирования Pascal. Основные функции, реализованные в программе. Интерфейс программы, описание процедур.

    курсовая работа [1,9 M], добавлен 03.06.2010

  • Исследование особенностей разработки линейных алгоритмов и их реализации в среде Delphi. Составление тестов для проверки программы. Характеристика основных элементов интерфейса, компонентов, значения их свойств. Построение графической схемы алгоритма.

    лабораторная работа [316,6 K], добавлен 08.11.2012

  • Составление программы разветвляющейся структуры для вычисления заданной функции. Нахождение произведения чётных и нечётных первых чисел натурального ряда. Приёмы программирования обработки одномерных массивов. Расчет суммы положительных элементов массива.

    контрольная работа [1,3 M], добавлен 20.12.2012

  • История создания и развитие Pascal. Особенности пакета программирования Turbo. его возможности редактора текстов, компилятора и отладчика. Построения программы на языке Turbo Pascal, ее структура, типы алгоритмов, одномерные и многомерные массивы.

    курсовая работа [519,3 K], добавлен 25.06.2011

  • Представление полиномов в виде кольцевых списков и выполнение базовых арифметических действий над ними. Реализация алгоритмов сложения, умножения и вычитания полиномов класса List на языке программирования Python 2.7. в интегрированной среде Python IDLE.

    курсовая работа [228,1 K], добавлен 11.01.2012

  • Построение интерполяционного полинома Ньютона по значениям функции в узлах согласно методу Лагранжа. Составление алгоритмов решения задачи, их реализация на программном уровне на языке Turbo Pascal. Представление результатов работы программы Polinom.

    курсовая работа [667,9 K], добавлен 01.10.2010

  • Синтез множительного устройства для умножения чисел с плавающей запятой, представленных в двоично-четверичной системе счисления. Перевод сомножителей из десятичной системы счисления в четверичную. Затраты на умножение шестиразрядных сомножителей.

    курсовая работа [133,5 K], добавлен 06.10.2011

  • Основные понятия и структура обработчика на языке Pascal. Элективные курсы по информатике в системе профильного обучения. Элективный курс "Программирование в среде Delphi". Методические материалы по изучению программирования на языке Object Pascal.

    методичка [55,4 K], добавлен 08.12.2010

  • Сущность и особенности языка программирования Си. Основные этапы алгоритма решения системы линейных алгебраических уравнений методом Гаусса, реализация программы для их расчета. Инструкции пользователя и программиста. Тестирование функции решения.

    курсовая работа [153,9 K], добавлен 18.02.2013

  • Факторизация натурального числа. Метод квадратичного решета. Факторизация с помощью эллиптических кривых. Реализация алгоритмов натуральных чисел и оценка их эффективности. Применение алгоритмов факторизации натуральных чисел в программной среде Maple.

    курсовая работа [851,6 K], добавлен 25.06.2013

  • Решение задач с помощью языка программирования Delphi: вычисление значения функции Y от X; систем двух уравнений; прогрессий; последовательностей; вычисление числа с определенной точностью; перевод числа из десятичной в восьмеричную систему счисления.

    отчет по практике [83,8 K], добавлен 08.06.2010

  • Разработка программы с использованием языка программирования Pascal для выполнения алгебраических действий с действительными числами без знака в шестнадцатеричной системе счисления. Описание хода выполнения, схема алгоритма, листинг программы, ее функции.

    реферат [687,5 K], добавлен 28.10.2011

  • Характеристика методов представления заданных чисел в двоичной, шестнадцатеричной, восьмеричной системе счисления. Представление указанного числа в четырехбайтовом IEEE формате. Разработка алгоритма обработки одномерных и двумерных числовых массивов.

    контрольная работа [138,9 K], добавлен 05.06.2010

  • Реализация линейных списков в языке программирования C++. Основные операции при работе с ними. Разработка интерфейса и алгоритмов. Описание работы программы на псевдокоде. Составление программного кода. Тестирование, отладка и результат работы программы.

    курсовая работа [1,1 M], добавлен 07.01.2014

  • Изучение функций и возможностей среды разработки языка программирования Pascal. Рассмотрение работы с одномерными и двумерными массивами, со строками и числами. Математическая формулировка задач. Разработка алгоритмов, описание структуры программ.

    курсовая работа [879,8 K], добавлен 11.02.2016

Работы в архивах красиво оформлены согласно требованиям ВУЗов и содержат рисунки, диаграммы, формулы и т.д.
PPT, PPTX и PDF-файлы представлены только в архивах.
Рекомендуем скачать работу.