для экзамена по инф Брэ / решение задач по паскаль
.docАлматинский институт энергетики и связи
Кафедра «Информационных технологий»
Использование возможностей программирования для решения вычислительных задач
Вариант 3
Вариант 6
Выполнил
студент гр. БСИ-12-02
Аманжолов Т.К.
Проверил
старший преподаватель
Водолазкина Н.А.
«___»_____________200__ г.
Алматы 2012
Содержание:
Введение ……………………………………………………....……………………3
1. Перевод чисел……………………….…………………………………………..4
2. Вычисление уровня резервуара………………………………..……………...6
3. Вычисление функций на интервале……………………………………………8
4. Вычисление плотности…………………………………………………………10
5. Определение характеристик потоков некоторых жидкостей……………….12
6. Вычисления сопротивления и температуры в интервале…………………...17
7. Действия с векторами…………………………………………………………..27
8. Вычисление объема бункера………………………………………………......24
Заключение…………………………………………………………………………..21
Список литературы.……………………………………….………………...........28
Введение
Язык Паскаль был разработан в начале 70-х годов ХХ века швейцарским профессором Никлаусом Виртом как инструмент для систематического обучения программированию. Для этого в состав языка были включены элементы структурного программирования (последовательные, разветвляющиеся и циклические структуры) и структуры данных (массивы, записи, файлы и т.д.). В 1983 году французский математик Филипп Кан разработал компактный, быстродействующий компилятор, названный Турбо Паскалем. В 1992 году фирма Borland International выпустила в свет очередную версию языка Турбо Паскаль 7.0 с улучшенным интерфейсом пользователя и более быстрым компилятором. Принципы построения программ, заложенные в Паскале, получили развитие в таких языка программирования как Ада, Модула-2, Си и т.д. Турбо Паскаль не только обеспечивает возможность создания больших программ, поддерживая их строгую логическую структуру, что весьма ценно для начинающих программистов, создающих серьезные программы, так как приучает их к определенной дисциплине. Кроме того, Паскаль считается достаточно простым и эффективным инструментом для решения инженерных задач.
К основным особенностям Турбо Паскаль можно отнести довольно строгие требования к структуре программы. Программа на языке Паскаль записывается в виде последовательности символов, к числу которых относятся латинские буквы, арабские цифры, знаки препинания, знаки операций. Для обозначения исходных данных и результатов вычислений (промежуточных и итоговых) употребляются переменные, имена (идентификаторы) которых могут быть не только буквами - a, b, X, Y и т.д., но и последовательностью символов вида x1, time, alfa2 и т.д., которые состоят из букв и цифр и начинаются с буквы. Ключевые слова – это множество имен, которые используются в языке для написания операторов и других конструкций. Имена, применяемые пользователем для обозначения конструкция не должны совпадать с ключевыми словами. Список зарезервированных слов и перечень операций языка приведены в таблицах В1 и В2. Соответствующее исходное данное или результат вычисления называется значением переменной. Константы отличаются от переменной тем, что их значения не меняются в ходе выполнения программы. Числа записываются в десятичной системе, вместо запятой ставится точка: 0, -19, 0.27, 3.1415 и т.д.
Вариант 3
3.1
Составить блок-схему и программу вычисления значений функции при заданных значениях аргумента.
Блок-схема:
Выполнение программы:
Листинг программы:
Program Zadanie1;
uses crt;
Var z,x,y,e,c:real;
Begin
clrscr;
Writeln('Vvdeti zna4enie x');
Readln(x);
Writeln('vvedite zna4enie y');
readln(y);
c:=exp(ln(x)*3)+sqr(y);
z:=c/(y*sin(x))-ln(y+5*exp(ln(e)*(y+x)))/exp(ln(abs(c))*1/4);
Write('Z=', z:10:3);
end.
3.2
Составить блок-схему и программу разветвляющейся структуры для вычисления заданной функции.
Блок-схема:
Выполнение программы:
Листинг программы:
Program Zadanie2;
Var x,y:real;
Begin
Write('Vvedite x');
Read(x);
If x<1
then y:=sqrt(sqr(x)+5)
else y:=3*x+cos(x+5.7);
write ('Y=',y:10:3);
end.
-
Составить программу решения задачи, используя оператор выбора. Определить квартал текущего года по вводимому номеру месяца. В случае если пользователь укажет недопустимый номер, то повторить попытку ввода.
Блок-схема:
Выполнение программы:
Листинг программы:
Program Zadanie3;
uses crt;
Var i:integer;
Begin
Writeln('Vvedite nomer mes9ca');
readln(i);
If i=1 then write('1 kvartal')
else
if i=2 then write('1 kvartal')
else
if i=3 then write('2 kvartal')
else
if i=4 then write('2 kvartal')
else
if i=5 then write('2 kvartal')
else
if i=6 then write('3 kvartal')
else
If i=7 then write('3 kvartal')
else
if i=8 then write('3 kvartal')
else
if i=9 then write('4 kvartal')
else
If i=10 then write('4 kvartal')
else
If i=11 then write('4 kvartal')
else
If i=12 then write('1 kvaratal')
else
write('povtorite popytku vvoda');
end.
3.4 Решить задачу согласно варианту тремя способами, т.е. с использованием операторов цикла For-To (или For-Downto), While-Do и Repeat-Until.
Даны числа a и n. Вычислить P = a(a-n) (a-2n) (a-3n) … (a-n2).
Блок-схема:
Выполнение программы:
Листинг программы:
program zadanie 4;
uses crt;
var i, n, a, p: integer;
begin
writeln('Vvedi N: ');
readln(n);
writeln('Vvedi A: ');
readln(a);
p:=a;
for i:=1 to n do
p:=p*(a-i*n);
writeln(p);
readln;
end.
3. 5 Вычислить сумму положительных элементов массива Z(10).
Блок-схема:
Выполнение программы:
Листинг программы:
program zadanie5;
uses crt;
const n=10;
var y,z: array [1..n] of integer;
i,j: byte;
begin
writeln('?????? Y');
for i:=1 to n do
begin
y[i]:=random(199)-99;
write(y[i]:4);
if y[i]>0 then
begin
inc(j); z[j]:=y[i];
end;
end;
writeln;
writeln('?????? Z');
for i:=1 to j do
write(z[i]:4);
end.
3.6 Программирование алгоритмов работы с частями матрицы.
Найти количество положительных элементов, расположенных ниже главной диагонали матрицы Y(5,5).
Блок-схема:
Выполнение программы:
Листинг программы:
program zadanie6;
uses crt;
var Y:array [1..5,1..5] of integer;
k,i,j:integer;
begin
clrscr;
Writeln('Vvedite znachenia elementov massiva');
for i:=1 to 5 do
for j:=1 to 5 do begin
write ('Y[',i,',',j,']=');
Readln (Y[i,j]);
end;
k:=0;
for i:=1 to 5 do
for j:=1 to 5 do
begin
If (i>j)and (Y[i,j]>0) then begin
k:=k+1;
end;
end;
writeln('Kolichestvo nije glavnoi diagonali=',k);
end.
Вариант 6
6.1 Составить блок-схему и программу вычисления значений функции при заданных значениях аргумента.
Блок-схема
Выполнение программы
Листинг программы:
Program Zadanie1;
uses crt;
var x,y,z,c,e:real;
Begin
clrscr;
Writeln('Vvdeti zna4enie x');
Readln(x);
Writeln('vvedite zna4enie y');
readln(y);
e:=2.7;
c:=x+y;
z:=sqr(sin(c))/sqr(c)-sqrt(abs(3*x-4*y))/(cos(x)+exp(ln(e)*(5*x)));
Write('Z=', z:10:3);
end.
6.2 Составить блок-схему и программу разветвляющейся структуры для вычисления заданной функции.
Блок-схема
Выполнение программы
Листинг программы
program zadanie2;
uses crt;
Var x,y:real;
Begin
Writeln('Vvedite x');
Readln(x);
If x<0
then y:=sqrt(4*sqr(x)+5)
else
if x>=0
then y:=Ln(4*sqr(x)+5)/ln(10);
write ('y=',y:10:3);
end.
6.3 Составить программу решения задачи, используя оператор выбора.
Вводится целое число. Если введено "1", то вывести "понедельник". Если введено "2", то вывести "вторник" и т.д. В остальных случаях - "Повторите попытку ввода".
Блок-схема
Выполнение программы
Листинг программы
Program premir1;
uses crt;
var k:integer;
begin
writeln('vvedite den nedeli');
readln(k);
if k=1 then write('ponedelnik')
else
If k=2 then write('vtornik')
else
If k=3 then write('sreda')
else
If k=4 then write('4etverg')
else
If k=5 then write('p9tnica')
else
If k=6 then write('subbota')
else
If k=7 then write('voskresenie')
else
Write('povtorite popytku vvoda');
end.
6.4 Решить задачу согласно варианту тремя способами, т.е. с использованием операторов цикла For-To (или For-Downto), While-Do и Repeat-Until.
Даны вещественное число X и натуральное число n. Вычислить сумму первых n слагаемых S = sinX + sinX2 + sinX3 +…+ sinXn.
Блок-схема
Выполнение программы
Листинг программы:
program primer1;
uses crt;
var i,n:integer;a,x,sum:real;
begin
write('vvite x=');
read(x);
write('vvedite n=');
read(n);
a:=exp(n*ln(x));
sum:=0;
i:=1;
repeat
sum:=sum+sin(a);
writeln('i=',i:2,sum:10:3);
i:=i+1;
until i>n
end.
6.5 Характерные приемы программирования обработки одномерных массивов.
Для целочисленного массива Х(9) найти произведение его элементов с четными индексами и выяснить является ли оно нечетным числом.
Блок-схема:
Выполнение программы
Листинг программы
program pr1;
uses crt;
var x:array[1..9] of integer;
i,n,pr:integer;
begin
write('vvedite znachenie');
for i:=1 to 9 do
readln(x[i]);
pr:=1;
for i:=1 to 9 do
begin
If i mod 2=0 then pr:=pr*x[i];
writeln('pr=',pr:10);
If odd(pr) then write('nechetnaia')
else write('chetnaia');
end;
end.
6.6. Найти количество нулевых элементов матрицы В(4,4), расположенных выше главной диагонали.
Блок-схема:
Выполнение программы:
Листинг программы
program massivi;
uses crt;
var A:array [1..4,1..4] of integer;
i,j:integer;
vise:integer;
begin
for i:=1 to 4 do
for j:=1 to 4 do begin write('A[',i,',',j,']='); readln(A[i,j]); end;
writeln;writeln('Ishodnyi:');
for i:=1 to 4 do begin writeln;
for j:=1 to 4 do write (A[i,j]:8); end;
vise:=0;
for i:=1 to 4 do
for j:=1 to 4 do
begin
if (i<j) and (A[i,j]=0) then inc(vise);
end;
writeln;
writeln;writeln('Rezulitaty:');
writeln('Kol-vo VISE glavnoi diagonali: ',vise:5);
readln;
end.