Помощь - Поиск - Пользователи - Календарь
Полная версия: 2 задачи на массивы.Задача на определён. интеграл.
Форум «Всё о Паскале» > Pascal, Object Pascal > Задачи
Troy
Люди добрые, я здесь первый раз, но очень надеюсь на вашу помощь!В общем в универе завал: по причине болезни накопился долг по информатике в 4 лабы...Лабы, как вы наверно уже поняли по Borland Pascal.Если вам не трудно не могли бы вы мне помочь?Может для вас эти задачи и покажутся простыми, но так как я пропустил 2 недели занятий, мне написать код этих программ не по силам...

Вот условия задач:



1)Обработка одномерных массивов:

Переписать подряд в массив А положительные элементы, а в массив Z отрицательные элементы массива В.

Массив В(20)



2)Обработка двумерных массивов:

В массиве В(4,4) найти произведение кубов главной диагонали.



3)Вычисление определённого интеграла приближёнными методами:

Подинтегральная функция: lnx (x в квадрате)

Метод численного решения: прямоугольников

Число отрезков: 50

Интервал интегрирования [1;2,5]





Заранее всем откликнувшимся огромное спасибо!
volvo
Troy
Вот что выдал поиск:
определенный интеграл
volvo
Цитата
Переписать подряд в массив А положительные элементы, а в массив 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
volvo Огромное спасибо!Не представляешь,как выручил меня!
Troy
volvo
Слушай, а с блок-схемами к этим программам не поможешь? :p2:
Troy
volvo, слушай,скомпилировал программы...первые 2 вылетают при запуске, а третья всегда выдаёт значение интеграла равным 0...
Troy
вот какой код получился у меня к 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
Troy
Я перед тем, как запостить программы, проверяю их...

Может, просто стоит добавить в конец моих программ Readln, чтобы ты успел увидеть результаты?
klem4
Цитата(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 МОжет я и неправ конечно.
Это текстовая версия — только основной контент. Для просмотра полной версии этой страницы, пожалуйста, нажмите сюда.