Основы программирования
Задача 1
Условие задачи
Заданы три корня кубического уравнения: X1, X2, X3. Найдите коэффициенты этого уравнения.
Блок-схема
Листинг с комментариями
Program Exercise_1;
var X1, X2, X3: Real;, B, C, D: Real;('X1: ');(X1);('X2: ');(X2);('X3: ');(X3);;
A:= 1; // коэффициент при x в степени 3
B:= - (X1+X2+X3); // коэффициент при x в степени 2
C:= X1*X2+X1*X3+X2*X3; // коэффициент при x в степени 1
D:= - (X1*X2*X3); // свободный член
Writeln ('A = 1');('B = ', B:0:1);('C = ', C:0:1);('D = ', D:0:1);
Readln;
end.
Таблица исполнения
X1X2X3ABCD1231-611-6= 1= - (1+2+3) = -6= 1*2+1*3+2*3 = 11= - (1*2*3) = -6
Таблица тестов
X1X2X3ABCD51241-21128-24010181-1998-802.53171-22.5101-127.5-2471-965615-4.2-10.810-79.6-680.4
Задача 2
Условие задачи
Пройдет ли кирпич со сторонами a, b и c сквозь прямоугольное отверстие со сторонами r и s? Стороны отверстия должны быть параллельны граням кирпича.
Листинг с комментариями
Program Exercise_2;
var:array [1..3] of real;:array [1..2] of real;, j:integer;:real;
// заполняем 1 массивi:=1 to 3 doi of
: Write ('Введите a: ');
: Write ('Введите b: ');
: Write ('Введите c: ');;(a[i]);;
// заполняем 2 массивi:=1 to 2 doi of
: Write ('Введите r: ');
: Write ('Введите s: ');;(b[i]);;
// сортировка 1 массиваi:=1 to 2 doj:=i+1 to 3 doa[i]<a[j] then:=a[i];[i]:=a[j];[j]:=k;
end;
// сортировка 2 массиваb[1]<b[2] then
begin:=b[1];[1]:=b[2];[2]:=k;;
// сравнение наиб. элементов массивов
if (a[2]<b[1]) and (a[3]<b[2]) then
Writeln('Пройдёт')('Не пройдёт');;.
Таблица исполнения
abcrsa(1)a(2)a(3)b(1)b(2)1 and 2Вывод1538251538258<5 and 3<2Не пройдет158352
8<5 - ложь и 3<2 - ложь Þ не пройдет
Таблица тестов
abcrsВывод271469Пройдет125128Пройдет10138147Не пройдет114545Не пройдет71682Пройдет
Задача 3
Условие задачи
Для заданных a и p вычислить x = по реккурентному соотношению:
, .
Сколько итераций надо выполнить, чтобы для заданной погрешности e выполнялось соотношение: ?
Блок-схема
Листинг с комментариями
Program Exercise_3;
const=0.0001;, x, xn:real;:boolean;, p:integer;kvadr (chislo:real; stepen:integer):real;:real;:integer;:=1;g:=1 to stepen do:=k*chislo;:=k;;:=true;('введите а: ');(a);('введите p: ');(p);:=a;:=0;flag do:=(1/p)*((p-1)*x+(a/kvadr (x, p-1)));abs (x-xn)<e then:=false
else
x:=xn;:=i+1;;('x = ', x:3:2);('интерации = ', i);;.
Таблица исполнения
eapxkvadrxni0.0001131kgxp-1kvadr111112112121
k=1*1=1, kvadr=1=1*1=1, kvadr=1
xn = (1/3)*((3-1)*1+1/1) = 1
|1-1| = 0 < 0.0001 верно Þ x=1, i=0+1=1
Таблица тестов
apxi571.2613491.17141232.2982151.05138101.2322
Задача 4
Условие задачи
В массиве C(m) каждый третий элемент заменить полусуммой двух предыдущих, а стоящий перед ним - полусуммой соседних с ним элементов. Дополнительный (рабочий) массив не использовать.
Листинг с комментариями
Program Exercise_4;
Const=15;:array [1..m] of real;:integer;, i4:real;;i:=1 to m do[i]:=Random(9);i:=1 to m do (C[i]:2:0,' '); // :2:0 ноль это дробная часть
Writeln;:=3;i<=m do:=(C [i-1]+ C [i-2])/2;:=(C[i]+C [i-2])/2;[i]:=i3;[i-1]:=i4;:=i+3;;i:=1 to m do (C[i]:2:0,' '); // :2:0 ноль это дробнаячасть
Writeln;
readln;.
Таблица исполнения
С1(1)С1(2)С1(3)С1(4)С1(5)С1(6)С2(1)С2(2)С2(3)С2(4)С2(5)С2(6)351709324784С2(1) = С1(1) = 3С2(4) = С1(4) = 7
С2(2) = (3+1)/2 = 2С2(5) = (7+9)/2 = 8
С2(3) = (3+5)/2 = 4С2(3) = (7+0)/2 = 3,5 » 4
Таблица тестов
№№С(1)С(1)С(1)С(1)С(1)С(1)С(1)С(1)С(1)С(1)С(1)С(1)С(1)С(1)117423048474724427563428864364421280658848184722215676886135773168188620333303264787823133304
Задача 5
Условие задачи
Матрицу А (m, n) заполнить следующим образом. Для заданных k и l элементу akl присвоить значение 1; элементам, окаймляющим его (соседним с ним по вертикали, горизонтали и диагоналям) - значение 2; элементам следующего окаймления - значение 3 и так далее до заполнения всей матрицы.
Листинг с комментариями
Program Exercise_5;
Const n=10;=15;A: array [1..n, 1..m] of Integer;, j, r, k, l: Integer;('k= ');(k);('l= ');(l);;i:=1 to n doj:=1 to m do(abs (i-k)<abs (j-l)) then:=abs (j-l)r:=abs (i-k);[i, j]:=r+1;;('Otvet: ');i:=1 to n doj:=1 to m do(A [i, j]:3);;;;.
Таблица исполнения
klA [1,1]A [1,2]A [1,13]…A [2,3]A [2,4]A [2,5]…A [10,15]23322…123…13
Таблица тестов
klСформированный массив233222345678910111213321234567891011121332223456789101112133333345678910111213444444567891011121355555556789101112136666666678910111213777777777891011121388888888889101112139999999999910111213
Задача 6
Условие задачи
Даны два целочисленных массива К(m) и L(n). Найти наибольший элемент массива K, не имеющий себе равных в массиве L.
Листинг с комментариями
Program Exercise_6;
Const m=15;=10;k: array [1..m] of Integer;: array [1..n] of Integer;, j, imax, b, r: Integer;: boolean;;i:= 1 to m do[i]:= -25 + random(75);('k: ');i:= 1 to m do(k[i]:4);;i:= 1 to n do[i]:= -25 + random(75);('l: ');i:= 1 to n do(l[i]:4);;
// сортировка массива ki:= 1 to m-1 do:= i;j:= i+1 to m dok[j]>k[imax] then:=j;:=k[i];[i]:=k[imax];[imax]:=b;;('new_k: ');i:= 1 to m do(k[i]:4);
Writeln;
// Проверяем (с max) элементы k[i] на наличие их в массиве l
r:= 1;:=true;flag and not (r=m+1) do // чтобы не выйти за пределы массиваi:=1 to n dok[r]=l[i] then
r:=r+1; // переходим к следующему элементу массива k
break;flag:=false;;flag then('net takogo');;;('Otvet: ', k[r]);
Writeln;;
end.
Таблица исполнения
МассивыОтветk-6-10213113348-2434303532-2-53148new_k4835343332313130211-2-5-6-10-24l37263349-13193969
Таблица тестов
МассивыОтветk12-74914-192246-12442025-17281649l-1943-8-932210-72738k5-820-2-1-2439-222347151117-17-2547l2303635361910-22-2124k-17-464920-5-19-8262113-12-320-749l-3-8-10-20133622108-14
Задача 7
массив уравнение итерация матрица
Условие задачи
Упорядочить по неубыванию каждую строку матрицы A (m, n), а после этого перестановкой строк упорядочить всю матрицу по неубыванию элементов первого столбца.
Листинг с комментариями
Program Exercise_7;
const=10;=10;:array [1..m, 1..n] of integer;:array [1..m] of integer;, j, p, k, t, s: integer;change (one, two: integer);: integer;i1:= 1 to n do:=a [one, i1];[one, i1]:=a [two, i1];[two, i1]:=s;;;;i:= 1 to m doj:= 1 to n do[i, j]:=Random(40);
// вывод массиваi:= 1 to m doj:= 1 to n do(a[i, j]:3);;;;
// Сортировкаi:= 1 to m doj:= 1 to n-1 dot:= 1 to n-j doa [i, t]>a [i, t+1] then:=a [i, t];[i, t]:=a [i, t+1];[i, t+1]:=s;;
// вывод массиваi:= 1 to m doj:= 1 to n do(a[i, j]:3);;;;
// заменаi:= 1 to m-1 doj:= 1 to m-i doa [j, 1]>a [j+1,1] then(j, j+1);
// вывод массиваi:= 1 to m doj:= 1 to n do(a[i, j]:3);;;;.
Таблица исполнения
Исходный массивПромежуточный массивРезультат119632213619220152022333320150220152022331361922273263393627323911522242425172182621718252621718252624241512211522242436273239
Таблица тестов
Исходный массивРезультат182702023658519025581819202736113583938273603101581327313638392935321336241272605588101319192924363729341122282135045788223234378190851013529190102123282829333435122331791963429180667162424283334345227803732482471213262932353610332821282335293403691217181923293435162639371193615229111516222635363739728163402424336611212224282934353637
Задача 10
Условие задачи
Даны длины a, b, c сторон некоторого треугольника. Найти медианы треугольника, сторонами которого являются медианы исходного треугольника. (Длина медианы, проведенной к стороне a, равна .
Листинг с комментариями
Program Exercise_10;
Var a, b, c: Integer;, b1, c1, m1, m2, m3: Real;('a = ');(a);('b = ');(b);('c = ');(c);
// проверка существования треугольника
if (a>=b+c) or (b>=a+c) or (c>=a+b) then
begin('Net');;:= 0.5*sqrt (2*b*b+2*c*c-a*a);:= 0.5*sqrt (2*a*a+2*c*c-b*b);:= 0.5*sqrt (2*a*a+2*b*b-c*c);:= 0.5*sqrt (2*b1*b1+2*c1*c1-a1*a1);:= 0.5*sqrt (2*a1*a1+2*c1*c1-b1*b1);:= 0.5*sqrt (2*a1*a1+2*b1*b1-c1*c1);('m1 = ', m1:3:2);('m2 = ', m2:3:2);('m3 = ', m3:3:2);;nd.
Больше работ по теме:
Предмет: Информационное обеспечение, программирование
Тип работы: Контрольная работа
Новости образования
КОНТАКТНЫЙ EMAIL: [email protected]
Скачать реферат © 2017 | Пользовательское соглашение
ПРОФЕССИОНАЛЬНАЯ ПОМОЩЬ СТУДЕНТАМ