РефератыИнформатика, программированиеОсОсновы программирования и алгоритмизации

Основы программирования и алгоритмизации

ФЕДЕРАЛЬНОЕ АГЕНТСТВО ПО ОБРАЗОВАНИЮ


ОРЛОВСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ


Курсовая работа


Основы программирования и алгоритмизации


Вариант – 10


Работу выполнил студент


Группа Факультет ФНТиАП


Специальность Автоматизация технологических процессов и производств


Курсовая работа защищена с оценкой


Орел 2009


Задание на курсовую работу


Студент


Группа Факультет ФНТиАП


Специальность Автоматизация технологических процессов и производств


Вариант – 10


Задания


1. В ЭВМ поступают результаты соревнований по плаванию для трех спортсменов. Составьте программу, которая выбирает лучшей результат и выводит его на экран с сообщением, что это лучшей результат.


2. Дано натуральное число n. Составить программу, определяющую, есть ли среди чисел n, n+1,...,2n близнецы, т.е. простые числа, разность между которыми равна 2. (Использовать процедуру распознавания простых чисел).


3. Найдите сумму элементов массива ниже главной диагонали, произведение не равных нулю элементов выше главной диагонали и количество элементов в главной диагонали, попадающих в интервал [-1;1].


4. Опишите множества М1 (1, 2,3) и M2 (1, 4, 2, 5). Получите результирующие множество M3=M1*M2. Определите, имеются ли в M3 элементы 1 и 2.


5. Создайте файл, компоненты которого являются целыми числами. Напишите программу, переписывающую компоненты файла в обратном порядке.(Новый файл не заводить).


Руководитель


Задание принял к исполнению «__» ____________ 2009 г.


Подпись студента


Содержание


Задание № 1


Задание № 2


Задание № 3


Задание № 4


Задание № 5


Приложение 1


Приложение 2


Приложение 3


Приложение 4


Приложение 5


Задание №1


Название программы введено после program, в данном задание это – Zadanie1. Далее с помощью var выделены ячейки памяти под переменные X1, X2, X3, res вещественного типа данных. После begin написан ход работы программы из последовательности операторов.


С помощью операторов writeln и readln описывается, что нужно ввести и записывается введенный результат в память, соответственно. Таким образом, вводим результаты спортсменов X1, X2, X3.


Далее с помощью условных операторов if определяем наименьший результат, который присваивается переменной res: if X1<X2 then res:=X1 else res:=X2; if res>X3 then res:=X3;. С помощью оператора writeln на экран выдается сообщение с результатом победителя заплыва.


Закрытие программы – end.


Алгоритм к Заданию №1:



Задание №2


Название программы введено после program, в данном задание это – Zadanie2. Далее с помощью var выделены ячейки памяти под переменные j, B, N типа данных word и массива а логического типа данных. После begin написан ход работы программы из последовательности операторов.


С помощью процедуры Pch определяем все простые числа, используемые в программе. Далее оператором writeln выводим сообщение о том, что ниже будут выдаваться числа близнецы.


Создаем цикл: for j:=N to 2*N do, где будет проверяться условие, что разность между числами равна 2. Если условие верно, то выдаются на экран сравнивающиеся числа, которые и будут близнецы.


Закрытие программы – end.


Процедура Pch.


Кроме общих переменных заданных в программе в процедуре используются внутренние переменные b, k типа данных word. Задаем диапазон, на котором будем выделять простые числа. Далее создаем цикл: for j:=2 to 2*N do, в котором всем значениям массива а присваиваем значение TRUE. С помощью нескольких циклов в цикле: while k<=b do, всем не простым числам в массиве а присваиваются значения FALSE.


Таким образом получаем массив а, где простые числа отмечены TRUE. Закрытие процедуры – end.


Алгоритм к Заданию №2:



Процедура


Простые числа:



Задание №3


Название программы введено после program, в данном задание это – Zadanie3. Далее с помощью var выделены ячейки памяти под переменные i, j, K, n, m типа данных byte, переменные S, Pr и массив a[1..255,1..255] вещественного типа данных. После begin написан ход работы программы из последовательности операторов.


Вводим размерность матрицы NxM, далее с помощью цикла: for j:=1 to m dо в цикле: for i:=1 to n do задаем все значения массива а.


Следующий этап – создаем цикл: for j:=1 to (i-1) do в цикле: for i:=2 to n do, где будут перебираться только элементы ниже главной диагонали и находим их сумму. Далее создаем цикл: for i:=1 to (j-1) do в цикле: for j:=2 to m do, где будут перебираться только элементы выше главной диагонали. Проверяем условие не равности нулю каждого элементы и находим их произведение: if a[i,j]<>0 then Pr:=Pr*a[i,j].


Далее в цикле: for i:=1 to n do, j присваиваем значение i, то есть перебираем только элементы главной диагонали, где проверяем принадлежность этих элементов диапазону [-1;1] и считаем это количество.


С помощью операторов writeln на экран выдаем результат. Закрытие программы – end.


Алгоритм к Заданию №3:



Задание №4


Название программы введено после program, в данном задание это – Zadanie4. Далее с помощью const заданы константы, множества M1=[1,2,3] и M2=[1,4,2,5], а с помощью var выделены ячейки памяти под множество M3 типа данных byte. После begin написан ход работы программы из последовательности операторов.


С помощью оператора writeln выводим сообщение о том, что даны множества М1и M2. Далее находим множество М3: М3:=M1*M2. С помо

щью условных операторов if проверяем наличие в множестве М3 элементов 1 и 2, после чего выдается соответствующее сообщение.


С помощью строки readln (); выполнение программы автоматически не закроется, что позволит посмотреть результат, а закрытие осуществляется после нажатия кнопки Enter. Закрытие программы – end.


Алгоритм к Заданию №4:



Задание №5


Название программы введено после program, в данном задание это – Zadanie5. Далее с помощью var выделены ячейки памяти под переменные i целого типа данных, k, j типа данных byte, массив а и f файл с целым типом данных. После begin написан ход работы программы из последовательности операторов.


Оператором assign устанавливаем связь между программой и файлом zadanie5.txt. Далее командой rewrite (f); открываем (создаем) файл для записи. Вводим количество вводимых чисел в файл. С помощью цикла: for j:=1 to k do, вводим поочередно k целых чисел, а с помощью команды write (f,i); записываем эти числа в файл.


Далее открываем файл, только в этот раз для чтения reset (f). И прочитываем все значения i и записываем их в массив a. Далее командой rewrite (f) опять открываем файл для записи и с помощью цикла: for j:=k downto 1 do, записываем значения массива а в файл f в обратном порядке.


Далее открываем файл для чтения reset (f). И прочитываем все значения. Затем с помощью цикла: for j:=1 to k do, командой read (f,a[j]) читаем числа и выводим их на экран через пробел: write (a[j],' ').


Далее закрываем файл и программу.


Алгоритм к Заданию №5:



Приложение 1


Текст программы к Заданию №1


program Zadanie1;


var


X1,X2,X3,res:real;


begin


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


readln (X1);


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


readln (X2);


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


readln (X3);


if X1<X2 then res:=X1 else res:=X2;


if res>X3 then res:=X3;


writeln ('Результат победителя заплыва: ', res:10:4);


end.


Решение:



Приложение 2


Текст программы к Заданию №2


programZadanie2;


var


j,B,N: word;


a: array [2..1000] of boolean;


procedure Pch;


var


b,k:word;


begin


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


readln (N);


for j:=2 to 2*N do


a[j]:=true;


b:=trunc(sqrt(2*N));


while k<=b do


begin


repeat


inc(k);


until a[k];


j:=2*k;


while j<=2*N do


begin


a[j]:=false;


j:=j+k;


end;


end;


end;


begin


Pch;


writeln ('Числа близнецы на диапозоне ',N,'..',2*N,' :');


B:=1;


for j:=N to 2*N do


if a[j] then


begin


if j-B=2 then writeln (j,' | ',B);


B:=j;


end;


end.


Решение:



Приложение 3


Текст программы к Заданию №3


program Zadanie3;


var


i,j,K,n,m: byte;


S,Pr: real;


a: array [1..255,1..255] of real;


begin


writeln ('Введите размерность массива N x M:');


readln (n,m);


for i:=1 to n do


for j:=1 to m do


begin


writeln ('Введите a[',i,',',j,'] : ');


readln (a[i,j]);


end;


for i:=2 to n do


for j:=1 to (i-1) do


S:=S+a[i,j];


Pr:=1;


for j:=2 to m do


for i:=1 to (j-1) do


if a[i,j]<>0 then Pr:=Pr*a[i,j];


if n>m then n:=m;


for i:=1 to n do


begin


j:=i;


if abs(a[i,j])<=1 then K:=K+1;


end;


writeln ('Сумма элементов ниже главной диагонали:',S:7:2);


writeln ('Произведение элементов выше главной диагонали:',Pr:7:2);


writeln ('Количество элементов на главной диагонали в интервале [-1;1]',K);


readln();


end.


Решение:



Приложение 4


Текст программы к Заданию №4


program Zadanie4;


const


M1=[1,2,3];


M2=[1,4,2,5];


var


M3: set of byte;


begin


writeln ('Даны множества М1(1,2,3), M2(1,4,2,5) и М3=М1*М2');


M3:=M1*M2;


if 1 in M3 then writeln ('1 есть в множестве М3')


else writeln ('1 нет в множестве М3');


if 2 in M3 then writeln ('2 есть в множестве М3')


else writeln ('2 нет в множестве М3');


readln;


end.


Решение:



Приложение 5


Текст программы к Заданию №5


program Zadanie5;


var


f: file of integer;


i: integer;


k,j: byte;


a: array [1..255] of integer;


begin


assign (f,'zadanie5.txt');


rewrite (f);


writeln ('Введите количество вводимых чисел: ');


readln (k);


for j:=1 to k do


begin


write ('Введите ',j,' число: ');


read (i);


write (f,i);


end;


reset (f);


writeln ('Значения из созданного файла:');


for j:=1 to k do


begin


read (f,i);


write (i,' ');


a[j]:=i;


end;


rewrite (f);


for j:=k downto 1 do


write (f,a[j]);


writeln;


reset (f);


writeln ('Значения из файла:');


for j:=1 to k do


begin


read (f,a[j]);


write (a[j],' ');


end;


close (f);


writeln;


end.


Решение:


Сохранить в соц. сетях:
Обсуждение:
comments powered by Disqus

Название реферата: Основы программирования и алгоритмизации

Слов:1443
Символов:12821
Размер:25.04 Кб.