Автор: Troy 17.12.2004 21:03
Люди добрые, я здесь первый раз, но очень надеюсь на вашу помощь!В общем в универе завал: по причине болезни накопился долг по информатике в 4 лабы...Лабы, как вы наверно уже поняли по Borland Pascal.Если вам не трудно не могли бы вы мне помочь?Может для вас эти задачи и покажутся простыми, но так как я пропустил 2 недели занятий, мне написать код этих программ не по силам...
Вот условия задач:
1)Обработка одномерных массивов:
Переписать подряд в массив А положительные элементы, а в массив Z отрицательные элементы массива В.
Массив В(20)
2)Обработка двумерных массивов:
В массиве В(4,4) найти произведение кубов главной диагонали.
3)Вычисление определённого интеграла приближёнными методами:
Подинтегральная функция: lnx (x в квадрате)
Метод численного решения: прямоугольников
Число отрезков: 50
Интервал интегрирования [1;2,5]
Заранее всем откликнувшимся огромное спасибо!
Автор: volvo 17.12.2004 21:11
Troy
Вот что выдал поиск:
http://forum.pascal.net.ru/index.php?showtopic=1121&hl=%E8%ED%F2%E5%E3%F0%E0%EB
Автор: volvo 17.12.2004 21:19
Цитата
Переписать подряд в массив А положительные элементы, а в массив Z отрицательные элементы массива В.
Делаем вот так:
Код
const
n = 20;
b: array[1 .. n] of integer =
(1, 2, 3, 4, -5, 6, 7, -8, -9, -10,
11, -12, 13, 14, -15, 16, -17, -18, 19, 20);
var
i: integer;
a, z: array[1 .. n] of integer;
ia, iz: integer;
begin
ia :=0; iz := 0;
for i := 1 to n do
if b[i] >= 0 then
begin inc(ia); a[ia] := b[i] end
else
begin inc(iz); z[iz] := b[i] end;
writeln('positive:');
for i := 1 to ia do write(a[i]:4);
writeln;
writeln('negative:');
for i := 1 to iz do write(z[i]:4);
writeln;
end.
Цитата
В массиве В(4,4) найти произведение кубов главной диагонали.
Код
const
n = 4;
b: array[1 .. n, 1 .. n] of integer =
((1, 2, 3, 4), (3, 4, 5, 6), (5, 6, 7, 8), (7, 8, 9, 10));
var
i: integer;
p: longint;
begin
p := 1;
for i := 1 to n do
p := p * sqr(b[i, i])*b[i, i];
writeln('p = ', p);
end.
Автор: Troy 18.12.2004 19:55
volvo Огромное спасибо!Не представляешь,как выручил меня!
Автор: Troy 19.12.2004 21:41
volvo
Слушай, а с блок-схемами к этим программам не поможешь? :p2:
Автор: Troy 21.12.2004 6:04
volvo, слушай,скомпилировал программы...первые 2 вылетают при запуске, а третья всегда выдаёт значение интеграла равным 0...
Автор: Troy 21.12.2004 6:07
вот какой код получился у меня к 3 программе:
Цитата
Program lab_6;
Uses crt;
Var
a,b,dx,s,x,y:real;
n,i:integer;
begin
writeln ('v a');
readln (a);
writeln ('v b');
readln(dx);
n:=Round((b-a)/dx);
x:=a;
s:=0;
for i:=1 to n do
begin
y:=ln(x*x)/x*x;
s:=s+y*dx;
x:=x+dx;
end;
writeln('Znachenie integrala:',s:9:3);
readln;
end.
По-моему неправильно...
Всё, писец,кажись сегодня я завалюсь на сдаче лаб...
Автор: volvo 21.12.2004 13:07
Troy
Я перед тем, как запостить программы, проверяю их...
Может, просто стоит добавить в конец моих программ Readln, чтобы ты успел увидеть результаты?
Автор: klem4 21.12.2004 13:45
Цитата(volvo @ 17.12.04 17:19)
Делаем вот так:
Код
if b[i] >= 0 then
begin inc(ia); a[ia] := b[i] end
else
begin inc(iz); z[iz] := b[i] end;
end.
Мне кажется там вот так надо :
Код
if b[i]>0 then
begin
inc(ai);
a[ai]=b[i];
end
else
if b[i]<0 then
begin
inc(iz);
z[iz]:=b[i];
end;
Там же ведь условие строгое : записать положительные и отрицательные а с теми которые = 0 ничего делать не надо :D МОжет я и неправ конечно.