Контрольная работа по теме "Информатика"
Лабораторная работа, 25 Февраля 2013, автор: пользователь скрыл имя
Описание
Работа содержит ответы на вопросы для экзамена (или зачета) по дисциплине "Информатика"
Работа состоит из 1 файл
_Лабораторная работа.doc
— 451.50 Кб (Скачать документ)
Министерство образования и науки Российской Федерации
Федеральное государственное образовательное бюджетное учреждение
высшего профессионального образования
Волгоградский государственный технический университет
Кафедра «Вычислительная техника»
Семестровая работа
по дисциплине «Информатика»
Вариант №
Выполнил:
студент группы ТОА-124
Иванов И.И.
ст. преп. Приходькова И.В.
Волгоград 2013 г.
Лабораторная работа №1
Вычислить, производя упрощения при помощи дополнительной переменной.
Тестовый пример: A=1 B=1 Z=8,08
входные данные: А, В
выходные данные: Z
Program lab_1;
Var A,B,Z, p: real;
Begin
Write('A='); ReadLn(A);
Write('B='); ReadLn(B);
P:=(sqrt(abs(A)+sqr(A+B))/(A*
Z:=B*(sin(p)/cos(p)+exp(p));
Writeln(' Z =', Z);
Readln;
End.
Лабораторная работа №2
Проверить на неотрицательность значение выражения
sin(tg(2π x / k )).
Если выражение неотрицательно, то значение k утроить.
Тестовый пример: x=1 k=1 k=1
входные данные: x,k
выходные данные: k
Program Lab_2;
Var x,k,y:Real;
Begin
Write('x='); ReadLn(x);
Write('k='); ReadLn(k);
y:=sin(sin(2*pi*x/k)/ cos(2*pi*x/k));
if y>=0
Then
begin
k:=3*k;
Writeln('Значение k утроено k=' ,K)
end
Else
Writeln('Значение k не изменилось, k=' ,K) ;
ReadLn
End.
Лабораторная работа №3
Ввести три действительных числа x, y, z . Вычислить q,w по
формулам:
q = max(x ⋅ y ⋅ z, 3⋅ z ⋅ x, 2⋅ (x + y + z));
w = min(3⋅ x ⋅ y ⋅ z , q/ 2). Вычисленные значения выдать на печать.
Тестовый пример: x=1, y=1, z=1 q= 6 ,w=3
входные данные: x,y,z,
выходные данные: q,w
Program Lab_3;
Var x,y,z,q,w: Real;
Function max(a,b:real): real;
begin
if a> b then max:=a else max:=b;
end;
Function min(a,b:real): real;
begin
if a< b then min:=a else min:=b;
end;
Begin
Write('x='); ReadLn(x);
Write('y='); ReadLn(y);
Write('z='); ReadLn(z);
q:=max(max(x*y*z, 3*z*x), 2*(x+y+z)) ;
w:= min(3*x*y*z, q/2);
WriteLn('q=', q);
WriteLn('w=', w);
End.
Лабораторная работа №4
Найти наибольшее значение функции y=ax3+bx-c при изменении x
от –4,5 до –33,5 с шагом –0,5. a=2,14; b=-4,21; c=3,25 .
Тестовый пример:
входные данные: a,b,c,
выходные данные: ymax, xm
Program Lab_4;
Var a,b,c,x,y,Ymax,xm: real;
Begin
a:=2.14;
b:=-4.21;
c:=3.25;
x:=-4.5;
xm:x;
Ymax:=a*x*sqr(x)+b*x+c;
Repeat
x:=x+-0.5;
y:=a*x*sqr(x)+b*x+c;
if (y> Ymax) and (x>=-33.5) then begin xm:=x; Ymax:=y end;
Until x<=-33.5;
Writeln('Max значение y =', Ymax);
Writeln('При значении x =', xm);
End.
Лабораторная работа №5
Задан одномерный массив В[10]. Найти сумму положительных элементов и произведение отрицательных. Если сумма больше произведения, найти МАХ элемент массива, а если нет - выдать сообщение об этом.
Тестовый пример: B[1]=1 B[2]=1 B[3]=3 B[4]=1 B[5]=1 B[6]=1 B[7]=1
B[8]=-1 B[9]=-1 B[10]=-1
входные данные: одномерный массив В[10].
выходные данные: Max=3
Program Lab_5;
Type arr= Array[1..10] of real;
Var B: arr;
Sp,Po,M: real;
i: integer;
Function Max(A:arr):real;
var i: integer;
p: real;
Begin
p:=A[1];
for i:= 2 to 10 do if A[i]> p Then p:=A[i];
Max:=p;
end;
Begin
For i:=1 to 10 do
begin
Write('Вводите очередной ',i,' -й элемент: ');
ReadLn(B[i];
end;
Writeln('Ввод окончен.');
//Найдём сумму положительных элементов
Sp:=0;
For i:=1 to 10 do
If B[i]>0 Then Sp:=Sp+B[i];
//Найдём произведение отрицательных
Po:=1;
For i:=1 to 10 do
If B[i]<0 Then Po:=Po*B[i];
If Sp>Po Then
begin
M:=Max(B);
Writeln('сумма больше произведения, Max=', M)
end
Else
Writeln('сумма не больше
End.
Лабораторная работа №6
В заданном одномерном массиве F(N) (N<=50) вычислить разность между суммой элементов, стоящих на четных местах, и суммой элементов, стоящих на нечетных местах. Найденным значением заменить положительные элементы массива. Преобразованный массив вывести на экран.
Тестовый пример:N=5 F[1]=1 F [2]=1 F [3]=1 F [4]=1 F [5]=1
преобразованный одномерный массив F[1]=-1 F [2]=-1 F [3]=-1 F [4]=-1 F [5]=-1
входные данные: одномерный массив F [N].
выходные данные: преобразованный одномерный массив F [N].
Program Lab_5;
Type arr= Array[1..50] of real;
Var F: arr;
Sch,Sn, R: real;
i, N: integer;
Begin
Write('Задайте N ='); ReadLn(N);
For i:=1 to N do
begin
Write('Вводите очередной ',i,' -й элемент: ');
ReadLn(F[i];
end;
Writeln('Ввод окончен.');
//Найдём сумму элементов, стоящих на четных местах
Sch:=0;
i:=2;
While i<=N do
begin
Sch:=Sch+F[i];
i:=i+2;
end;
//Найдём сумму элементов, стоящих на нечетных местах
Sn:=0;
i:=1;
While i<=N do
begin
Sn:=Sn+F[i];
i:=i+2;
end;
//вычисляем разность между суммой элементов, стоящих на четных местах, и суммой элементов,
R:=Sch-Sn;
//Найденным
значением заменяем
For i:=1 to N do
If F[i]>0 Then F[i]:=R;
//Печать преобразованного масссива
For i:=1 to N do Write(F[i]:5:1);
End.
Лабораторная работа №7
1. Ввести двумерный массив 5 3 A × . Определить в нём среднее
арифметическое элементов, стоящих на позициях с чётной суммой индексов.
Тестовый пример: A[i,j] A[1,1] = 1 A[1,2] = 1 A[1,3] = 1 A[1,4] = 1 A[1,5] = 1
сумму элементов, стоящих на позициях с чётной суммой индексов =8
входные данные: двумерный массив A[i,j]
выходные данные: сумма элементов, стоящих на позициях с чётной суммой индексов
Program Lab_7_1;
Type arr= Array[1..5,1..3] of real;
Var A: arr;
S: real;
i,j, k: integer;
Begin
For i:=1 to 5 do
begin
Writeln('Вводим ',i,'-ю строку:');
For j:=1 to 3 do
begin
Write('Вводите очередной ',j,' -й элемент: ');
ReadLn(A[i,j]);
end;
end;
Writeln('Ввод окончен.');
//Найдём сумму элементов, стоящих на позициях с чётной суммой индексов
S:=0;
For i:=1 to 5 do
for j:=1 to 3 do
if ((i+j) mod 2=0) Then S:=S+A[i,j];
Writeln('сумму элементов, стоящих на позициях с чётной суммой индексов =',S);
End.
2. Ввести двумерный массив N M A × . Элементы в нечетных столбцах массива умножить на индекс строки в которой они находится. Массив вывести до и после преобразования.
Тестовый пример: A[i,j] A[1,1] = 1 A[1,2] = 1 A[1,3] = 1 A[1,4] = 1 A[1,5] = 1
преобразованный массив A[i,j]
входные данные: двумерный массив A[i,j]
выходные данные: преобразованный массив A[i,j]
Program Lab_7_2;
Type arr= Array[1..10,1..10] of real;
Var A: arr;
S: real;
i,j, k, N,M: integer;
Procedure Print(A:arr);
var i,j: integer;
Begin
for i:=1 to N do
begin
For j:=1 to M do
begin
Write(A[i,j]:5:1);
end;
writeln;
end;
writeln;
End;
Begin
Write('Число строк:'); ReadLN(N);
Write('Число стлб :'); ReadLN(M);
For i:=1 to N do
begin
Writeln('Вводим ',i,'-ю строку:');
For j:=1 to M do
begin
Write('Вводите очередной ',j,' -й элемент: ');
ReadLn(A[i,j]);
end;
end;
Writeln('Ввод окончен.');
Writeln('Введен массив:');
Print(A);
for i:=1 to N do
begin
j:=1;
while j<=M do
begin
A[i,j]:=i*A[i,j];
j:=j+2;
end;
end;
Writeln('Преобразованный
Print (A);
End.
Семестровая работа
- Задан одномерный массив. Вычислить сумму отрицательных элементов этого массива. Записать ее модуль на место элемента, стоящего после максимального. Если такого элемента нет, то выдать сообщение. Результат вывести на экран.
Тестовый пример:N=5 A[1]=1 A [2]=-1 A [3]=1 A [4]=-1 A [5]=10
преобразованный одномерный массив A[1]=1 A [2]=-1 A [3]=-1 A [4]=1 A [5]=2
входные данные: одномерный массив A [N].
выходные данные: преобразованный одномерный массив A [N].
Program semestr_1;
Type arr= Array[1..50] of real;
Var A: arr;
S, R: real;
i, N, Nmax, FL: integer;
Begin
Write('Задайте N ='); ReadLn(N);
For i:=1 to N do
begin
Write('Вводите очередной ',i,' -й элемент: ');
ReadLn(A[i]);
end;
Writeln('Ввод окончен.');
//Найдём сумму отрицательных элементов
S:=0;Nmax:=1; fl:=0;
i:=1;
While i<=N do
begin
if A[i]<0 then S:=S+A[i];
if A[Nmax]< A[i] then begin fl:=1; Nmax:=i end;
i:=i+1;
end;
If FL=1 then Writeln ('Max=', A[Nmax], ' его номер =', Nmax );
If FL =0 then Writeln('Максимальног элемента в массиве нет. ');
If (FL=1) and (Nmax<N)
then begin A[Nmax+1]:=abs(S);
for i:=1 to N do Write(A[i], ' ');
writeln
end
else Writeln('Записать невозможно ' ) ;
End.
2.Найти среднее арифметическое элементов каждой строки матрицы B(N,M) (N£10; M£15) и переписать их в одномерный массив C. Массив C распечатать. Если первый элемент в массиве С положительный , тогда найти минимальный элемент в массиве В, иначе в массиве С найти максимальный элемент.
Тестовый пример: B[i,j] B[1,1] = 1 B[1,2] = 1 B[1,3] = 1
Min=1
входные данные: двумерный массив B[i,j]
выходные данные: Min, Max
Program Semestr_2;
type matr=Array[1..10,1..15] of real;
lin=Array[1..10] of real;
Var B: matr;
C: lin;
i,j,N,M: integer;
min, max: real;
Procedure Print(A:matr);
var i,j: integer;
Begin
for i:=1 to N do
begin
For j:=1 to M do
begin
Write(A[i,j]:5:1);
end;
writeln;
end;
writeln;
End;
Procedure Minel(A:matr; var mi : real);
var i, j: integer;
begin
mi:=A[1,1];
for i:=1 to N do
for j:=1 to M do
if A[i,j] < mi then mi:= A[i,j]
end;
Procedure Maxel(A:matr; var ma : real);
var i, j: integer;
begin
ma:=A[1,1];
for i:=1 to N do
for j:=1 to M do
if A[i,j] >ma then ma:= A[i,j]
end;
Begin
//число строк
Write('N='); ReadLn(N);
// число столбцов
Write('M='); ReadLn(M);