Реферат по предмету "Информатика, программирование"


Выражения и условный оператор IF. Операторы циклов. Массивы и подпрограммы

Томский межвузовский центр дистанционногообразования
Томский государственный университетсистем управления и радиоэлектроники (ТУСУР)
Кафедра экономика
Контрольная работа №1
по дисциплине «информатика»
автор пособия Тимченко С.В., СметанинС.И.
вариант №1
Выполнила
Студенткагр.З-828-Б
Специальности080105
АфонинаЮлия Владимировна
Г. Нефтеюганск
2009 г./>/>/>/>

Задание№1. «Выражения и условный оператор IF»
 
/>/>/>1.        Вычислить значение функции f в точке x.
/>
/>/>/> 
Решение:
Programprog1;
Var
f,x: real;
Begin
writeln('Расчетзначения функции в заданной точке');
write('Введите число x: ');
readln(x);
ifxthen f:=SQR(x+3) else
begin
ifxthenf:=sin(x-2)/(SQR(x)-16)
elsef:=SQRT(x-4);
end;
writeln('Значение f(',x:0:8,') = ',f:0:8);
readln;
end.
/>/>/>Тестированиепрограммы:
1.        X=-1(выполнено первое условие, x
Расчет значения функции в заданной точке
Введите число x: -1
Значение f(-1.00000000) = 4.00000000
2.        X=3(выполнено второе условие, 0
Расчет значения функции в заданной точке
Введите число x: 3
Значение f(3.00000000) = -0.12021014
3.        X=5(выполнено третье условие, x>=4):
Расчет значения функции в заданной точке
Введите число x: 5
Значение f(5.00000000) = 1.00000000
Программа дает верные результаты, отладка завершена.
/>/>/>2.        Какие типы использовались при описании переменных впрограмме?
При описании данной программыиспользовались переменные вещественного типа.
/>/>/>3.        Чем определяется выбор того, или иного типа?
Типом данных называется множестводопустимых значений этих данных, а также совокупность операций над ними. Типыделятся на следующие группы: простые, структурированные, указатели,процедурные, объекты. Есть стандартные (предопределенные) и определяемыепрограммистами в разделе, начинающемся со слова Type.Простые типы определяют упорядоченное множество значений элементов и делятся навещественные, целые, символьный, логический, перечисляемый и тип-диапазон.Вещественные типы определяют дробные числа и представлены 5 стандартнымитипами: real, single,double, extended,comp. Целые типы определяют целые числаи представлены 5 стандартными типами: integer,longint, shortint,byte, word,стандартный символьный тип charопределяет полный набор допустимых символов. Стандартный логический тип Booleanпредставляет собой тип данных, каждый элемент которого может принимать 1 из 2-хзначений: False (ложь), True(правда). Перечисляемый тип не является стандартным и определяется набором идентификаторов,к которым может совпадать значение элемента данных.
В данной программе выбор типа realдляпеременной xобусловлентем, что функции sqrt(x),sin(x)иsqr(x)допускают аргументы такого типа. А так как значение функции sin(x)имееттип real для аргументатипа real, то для переменнойf необходимо также выбратьтип real./>/>/>/>
Задание №2. «Операторы циклов»
 
/>/>/>1.        Задание:
Вычислить сумму sзначений функции f в точках xiкоторые берутся с заданного интервала [a;b] через равные отрезкидлиной h. Длина отрезкарассчитывается по формуле />.Здесь i=1,2,3…n – номер точки; n – задаваемое количествоточек; a – начло и b – конец интервала изменения x. Вывестина экран результаты вычислений, полученные при помощи следующих циклов:
-     While логическое_выражениеDo тело_цикла;
-     Repeat тело_циклаUntil логическое_выражение;
-     For параметр:=мин._значениеTo макс. Do тело_цикла;
-     For параметр:=макс._значениеDownTo мин. Do тело_цикла;
При выполнении задания сначала впрограмме требуется задать значение исходных данных: границы интервала aи b, количество точек n. Это можно сделать, описавсоответствующие константы в разделе объявления констант Const.
Затем при помощи операторов циклов,записываемых в программе последовательно друг за другом в любом порядкеследования, необходимо в каждом из циклов вычислить сумму s и вывести еена экран, т.е. в одной программе решить задачу 4-мя способами. Таким образом, врезультате выполнения программе на экране должны быть 4 значения s,совпадающие между собой.

/>/>/>Решение:
Programprog2;
const
a=3;
b=10;
n=10;
var
s,x,h:real;
i:integer;
begin
writeln('Вычислениесуммы значений функции');
h:=(b-a)/(n-1);
writeln('a = ',a);
writeln('b = ',b);
writeln('n = ',n);
writeln('h = ',h:0:8);
writeln;
{цикл «while»}
writeln('1.Цикл «while»');
x:=a;
s:=0;
i:=1;
whilei
begin
s:=s+sin(x+3)/exp(2/5*ln(x+3));
x:=x+h;
i:=i+1;
end;
write('Значениеs: ');
writeln(s:0:8);
{цикл«repeat»}
writeln('2.Цикл«repeat»');
x:=a;
s:=0;
i:=1;
repeat
s:=s+sin(x+3)/exp(2/5*ln(x+3));
x:=x+h;
i:=i+1;
untili>10;
write('Значениеs: ');
writeln(s:0:8);
{цикл«for… to… do»}
writeln('3.Цикл«for… to… do»');
x:=a;
s:=0;
fori:=1 to 10 do
begin
s:=s+sin(x+3)/exp(2/5*ln(x+3));
x:=x+h;
end;
write('Значениеs: ');
writeln(s:0:8);
{цикл«for… downto… do»}
writeln('4.Цикл«for… downto… do»');
x:=a;
s:=0;
fori:=10 downto 1 do
begin
s:=s+sin(x+3)/exp(2/5*ln(x+3));
x:=x+h;
end;
write('Значениеs: ');
writeln(s:0:8);
readln;
End.
/>/>/>Тестированиепрограммы:
Переменные a, b, h заданы в разделе констант впрограмме:
const
a=3;
b=10;
n=10;
Результат работы программы:
Вычисление суммы значений функции
a = 3
b = 10
n = 10
h = 0.77777778
Результаты вычислений, полученные при помощиразличных циклов:
1.            ЦиклWhile:
1. Цикл «while»
Значение s: 0.15809431
2.            Циклrepeat:
2. Цикл «repeat»
Значение s: 0.15809431
3.            ЦиклFor … To … Do:
3. Цикл «for… to… do»
Значение s: 0.15809431
4.            ЦиклFor … DownTo … Do:
4. Цикл «for… downto… do»
Значение s: 0.15809431
Программа дает одинаковые результаты для всех циклов,отладка завершена.
/>/>/>2.        Опишите оператор While.
Оператор While имеет следующуюструктуру:
Whileлогическоевыражение doоператор;
Работает этот оператор очень просто. Вычисляетсязначение логического выражения. Если получается истина (True),то выполняется оператор, а затем снова вычисляется значение логическоговыражения. Если снова получается истина, то опять выполняется оператор, и т.д.Так продолжается до тех пор, пока при вычислении логического выражения неполучится ложь (False). После этогооператор While заканчивает своюработу и передает действие следующему оператору.
В частности, если в самом начале работы Whileпри вычислении логического выражения получается ложь, то оператор не выполнитсяни разу. Как обычно, в качестве оператора может выступать некоторый составнойоператор. Может показаться странным, что оператор Whileвообще когда-нибудь заканчивает свою работу. В самом деле, почему одно и то желогическое выражение сначала было истинным, а потом, после несколькихвыполнений оператора, стало ложным? Логическое выражение зависит от несколькихпеременных, значение которых меняется во время выполнения оператора, что влечетза собой изменения значения логического выражения. В принципе, это вовсе неозначает, что каждый оператор Whileкогда-нибудь заканчивает работу. То есть, не исключена ситуация, когдалогическое выражение всегда будет истинным, и оператор Whileбудет работать вечно. Такая ситуация называется зацикливанием. Таким образом,при использовании оператора Whileи вообще других циклических операторов нужно быть аккуратным и старатьсяизбегать зацикливаний. Это значит, что при программировании любого цикла нужностараться всегда объяснить самому себе, почему этот цикл не будет вечным, акогда-нибудь закончит свою работу.
/>/>/>3.        В чем ее основные отличия от остальных циклов TurboPascal?
Цикл while имеет следующиеотличия от оператора repeat:
1)     Воператоре while проверка условия выхода выполняется в начале выхода, а уrepeat в конце.
2)     Телоцикла может выполняться ни разу в while,а в repeat всегдавыполняется хотя бы один раз;
3)     Условиевыхода удовлетворяется, если выражение ложно, repeat– если истинно;
4)     Телоцикла должно содержать только один оператор, а в repeatможно поместить любое количество операторов.
Оператор For: Если значение условного выраженияистинно, то цикл продолжает выполняться, а если значение условного выраженияложно, то происходит выход из цикла. После выхода из цикла идет переход кследующему оператору программы. Изменение – это выражение, определяющее, какбудет меняться параметр цикла. В операторе for сначала проверяется условие иесли значение условия «истинно», то идёт выполнение тела цикла (блокаоператоров или простого оператора)./>/>/>/>
Задание №3. «Массивы и подпрограммы»
Результатом выполнения третьего заданиядолжна быть программа, написанная с использованием подпрограмм – не менее 2процедур и 1 функции.
Задание связанно с действиями надквадратной матрицей m[n,n], у которой количество строк и столбцов равно n (2 ≤n ≤ 10). Матрицы могут быть либо вещественного, либо целого типа.Значения компонентов матрицы следует задавать случайным образом и в такомдиапазоне, чтобы полученные данные были нетривиальными, т.е. неочевидными, нележащими на поверхности.
/>/>/>Задание:
1)     Найтиминимальное и максимальное значение компонентов квадратной вещественной матрицыm[n,n].
2)     Поменятьместами в матрице m[n,n] компоненты строки, содержащейминимум, с компонентами столбца, содержащего максимум. Если минимумов илимаксимумов в матрице несколько, то взять строку и столбец первых встречных припереборе из минимумов и максимумов соответственно.
3)     Водномерный массив v[n] записать компоненты главной диагоналиизмененной матрицы m[n,n] (индексы строки и столбцаглавной диагонали равны).
4)     Вычислитьсумму компонентов полученного массива v[n].
5)     Наэкран вывести исходную матрицу m[n,n], первые встреченныеминимальную и максимальную компоненты с индексами, измененную матрицу m[n,n],массив v[n], сумму компонентов массива v[n].
/>/>/>Решение.
В следующей программе использованы 3 процедуры:
-           input_matrix для ввода n изаполнения матрицы m[n,n];
-           output_matrix для вывода матрицы наэкран;
-           change_matrix для измененияэлементов стоки и столбца матрицы;
и одна функция:
-           vector_v для вывода на экранвектора v[n]и суммирования его элементов.
Формат вывода результатов расчета задаетсяпостоянной digits:
const
digits=3;
которая указывает, сколько знаков после запятойотображать.
/>/>/>Программа:
programprog3;
const
digits=3;
type
matrix=array[1..10, 1..10] ofreal;
vector=array[1..10] of real;
var
m:matrix;
v:vector;
n:integer;
procedureinput_matrix (var m:matrix; var n:integer);
var
p1,p2,a,b:real;
input:boolean;
i,j:integer;
begin
input:=false;
repeat
writeln('Введитеразмер квадратной матрицы n');
writeln('неменее 2 и не более 10:');
readln(n);
if(nor (n>10) then
begin
writeln('Вы ввели неправильный размер матрицы,');
writeln('nдолжно быть не менее 2 и не более 10.');
end
else
begin
input:=true;
end;
untilinput;
writeln('Введителевуюa иправуюb границы');
writeln('диапазоназначений компонент матрицы:');
write('a= ');readln(a);
write('b= ');readln(b);
ifa>b then
begin
p1:=a;
a:=b;
b:=p1;
end;
ifa=b then begin p1:=0; p2:=b; end
elseif b=0 then begin p1:=a; p2:=0; end
elsebegin p1:=b-a; p2:=a; end;
{p1- расстояние между левой и правой границей}
{p2 — левая граница}
randomize;
fori:=1 to n do
forj:=1 to n do
m[i,j]:=p2+random*p1;
end;{input_matrix}
procedureoutput_matrix(var m:matrix; n:integer);
var
i,j:integer;
begin
fori:=1 to n do
begin
forj:=1 to n do
begin
write(m[i,j]:0:digits);
write('');
end;
writeln;
end;
writeln;
end;{output_matrix}
procedurechange_matrix(var m:matrix;n:integer);
var
i,j:integer;
min_r,min_c,max_r,max_c:integer;
min_z,max_z:real;
value:real;
begin
min_z:=100000;
fori:=1 to n do
forj:=1 to n do
ifm[i,j]then
begin
min_r:=i;min_c:=j;min_z:=m[i,j];
end;
writeln('Минимальноезначение и индексы:');
write(min_z:0:digits);
write(';столбец:');
write(min_c);
write(',строка:');
writeln(min_r);
max_z:=-100000;
fori:=1 to n do
forj:=1 to n do
ifm[i,j]>max_z then
begin
max_c:=j;max_r:=i;max_z:=m[i,j];
end;
writeln('Максимальноезначение и индексы:');
write(max_z:0:digits);
write(';столбец:');
write(max_c);
write(',строка:');
writeln(max_r);
{изменение элементов строки и столбца}
write('Изменениеэлементов ');
write(min_r);
write('строки и ');
write(max_c);
writeln('столбца');
fori:=1 to n do
begin
value:=m[min_r,i];
m[min_r,i]:=m[i,max_c];
m[i,max_c]:=value;
end;
end;{change_matrix}
procedurevector_v(m:matrix;var v:vector;n:integer);
var
i:integer;
s:real;
begin
fori:=1 to n do
v[i]:=m[i,i];
s:=0;
fori:=1 to n do
s:=s+v[i];
writeln('Векторv[n]:');
fori:=1 to n do
write(v[i]:0:digits,'');
writeln;
write('Суммакомпонентов вектора: ');
writeln(s:0:digits);
end;{vector_v}
begin
input_matrix(m,n);
writeln('Первоначальнаяматрица');
output_matrix(m,n);
change_matrix(m,n);
writeln('Новаяматрица');
output_matrix(m,n);
vector_v(m,v,n);
readln;
end.
/>/>/>Тестирование программы:
Введите размер квадратной матрицы n
не менее 2 и не более 10:
3
Введите левую a и правую b границы
диапазона значений компонент матрицы:
a = -5
b = 5
Первоначальная матрица
4.326 -3.582 -2.539
-2.236 -1.983 1.980
2.884 3.248 -1.216
Минимальное значение и индексы:
-3.582; столбец: 2, строка: 1
Максимальное значение и индексы:
4.326; столбец: 1, строка: 1
Изменение элементов 1 строки и 1 столбца
Новая матрица
4.326 -2.236 2.884
-3.582 -1.983 1.980
-2.539 3.248 -1.216
Вектор v[n]:
4.326 -1.983 -1.216
Сумма компонентов вектора: 1.127
Результаты тестирования:
-          сгенерированныеэлементы матрицы не выходят за границы заданного диапазона;
-          минимальноеи максимальное значения определены верно;
-          вектордиагональных элементов составлен правильно;
-          измененыместами нужные строка и столбец.
Отладка завершена.


Не сдавайте скачаную работу преподавателю!
Данный реферат Вы можете использовать для подготовки курсовых проектов.

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.

Сейчас смотрят :

Реферат Функционирование рынка ценных бумаг в условиях нестабильной экономики России
Реферат Взлом компьютерных систем
Реферат " topical problems of education " Конференция состоится 17-24 октября 2008г в Греции
Реферат Виды преступлений и наказаний по "Русской Правде"
Реферат Влияние удобрений на картофель
Реферат Federalist Vs AntiFederalist Essay Research Paper Federalists
Реферат The Process Of Acting Essay Research Paper
Реферат «Цели опричнины»
Реферат Субъективная сторона состава преступления
Реферат Классическая теория организации 3
Реферат Испания государство автономий
Реферат Велика Вітчизняна війна 1941-1945 рр. за матеріалами свідків та ветеранів війни
Реферат Будный Сымон
Реферат Абстракционизм искусство, ничего не выражающее самыми различными выразительными средствами. Неизв
Реферат Разработка системы мероприятий по рациональному использованию пахотных земель и создание высокопродуктивных устойчивых агросистем в хозяйстве "Хайтинское", Усольского района