Форум программистов
 

Восстановите пароль или Зарегистрируйтесь на форуме, о проблемах и с заказом рекламы пишите сюда - alarforum@yandex.ru, проверяйте папку спам!

Вернуться   Форум программистов > IT форум > Помощь студентам
Регистрация

Восстановить пароль
Повторная активизация e-mail

Купить рекламу на форуме - 42 тыс руб за месяц

Ответ
 
Опции темы Поиск в этой теме
Старый 29.11.2007, 20:31   #1
Nexx
Пользователь
 
Регистрация: 25.09.2007
Сообщений: 28
По умолчанию Задачка. Паскаль.

Здрасьте!! Сложная задача,сам не смог разобраться, плз посмотрите:

Для массива Т из k элементов составить процедуру, формирующую массив из индексов элементов массива Т, для которых f(Ti) больше заданной величины.

В каждой строке матрицы А распечатать только те элементы, десятичный логарифм которых больше G.

Последний раз редактировалось Nexx; 29.11.2007 в 21:22.
Nexx вне форума Ответить с цитированием
Старый 29.11.2007, 20:55   #2
Nexx
Пользователь
 
Регистрация: 25.09.2007
Сообщений: 28
По умолчанию

Код:
program p;
uses crt;
type massiv=array[1..10] of real;
var m,t:massiv; a:array[1..10,1..10] of real;
    i,j,n:integer; k:byte; g:real;
function log(x:real):real;
 begin log:=ln(x)/ln(10);
 end;
procedure bg(b:byte;a:massiv; g:real; var d:massiv; l:byte);
	  begin
		l:=0;
	   for i:=1 to n do
	     if (log(a[i])>g) then begin
				      l:=l+1;
				      d[l]:=a[i];
				      if b=1 then d[l]:=l;
				    end;
	   end;
begin clrscr;   writeln('vvedite n: '); readln(n);

      for i:=1 to n do
	for j:=1 to n do
	 readln(a[i,j]);
	 for j:=1 to n do begin
	  m[i]:=a[i,j];
      for i:=1 to n do begin
       for j:=1 to n do
	 m[i]:=a[i,j];
	  bg(0,m,g,t,k);
	  for i:=1 to k do
	    write(t[i],' ');
	    writeln;
		      end;
		      end;
    for i:=1 to n do
      readln(t[i]);
    bg(1,t,g,m,k);
     writeln;
   for i:=1 to k do
      write(t[i]);
      readkey;
end.
Nexx вне форума Ответить с цитированием
Старый 29.11.2007, 20:56   #3
Nexx
Пользователь
 
Регистрация: 25.09.2007
Сообщений: 28
По умолчанию

Вот что я наваял) только уже сейчас вижу что неправильно, пожалста исправьте, оч нада
Nexx вне форума Ответить с цитированием
Старый 30.11.2007, 13:51   #4
puporev
Старожил
 
Регистрация: 13.10.2007
Сообщений: 2,740
По умолчанию

В самом начале у тебя ошибки. Функция Log сделана правильно, а дальше сплошная путаница. Я тебе написал код, разбирайся. Что непонятно, спрашивай.
Код:
uses crt;
type mas=array[1..10,1..10] of real;
var m:mas;a:array[1..10] of real;
    i,j,n:integer;g:real;
function log10(x:real):real;
begin
   log10:=ln(x)/ln(10);
end;

procedure bg(m:mas;n:integer;g:real);
var i,j:integer;
begin
   for i:=1 to n do
     begin
        for j:=1 to n do
           if log10(m[i,j])>g then
           write(m[i,j]:6:2);writeln;
     end;
readln;
end;

begin
clrscr;
write('Введите n<=10; n=');readln(n);
write('Введите число g (0<=g<=1); g=');readln(g);
randomize;
for i:=1 to n do
for j:=1 to n do
    begin
      m[i,j]:=random(10)+1+random;
    end;
for i:=1 to n do
   begin
     for j:=1 to n do
         write(m[i,j]:6:2);
   writeln;
  end;
readln;

bg(m,n,g);

end.

Последний раз редактировалось puporev; 30.11.2007 в 14:42.
puporev вне форума Ответить с цитированием
Старый 30.11.2007, 18:14   #5
Nexx
Пользователь
 
Регистрация: 25.09.2007
Сообщений: 28
По умолчанию

Я вот немного по другому переделал, тока ошибку выдает. Зацени
Код:
program p;
uses crt;
type massiv=array[1..10] of real;
     dvmass=array[1..10,1..10] of real;
var a:dvmass;
    g:real; c:massiv;
    q,k,n,i,j:integer;
    m:array[1..10] of integer;
function log10(x:real):real;
     begin
	 log10:=ln(x)/ln(10);
     end;
procedure proc(t,b:massiv; g:real; k,n:integer);
	begin
	  for i:=1 to n do
	    if log10(t[i])>g then begin
	      k:=k+1;
	      b[k]:=i;
				 end;
	 end;
begin clrscr;
      randomize;
      writeln('Vvedi n-razryadnost'' matrici i vvedi g');
      readln(n,g);
      for i:=1 to n do begin
	for j:=1 to n do begin
	  a[i,j]:=random(31)-15;
	  write(a[i,j]:4);
	  end;
	  writeln;
	  end;
     for i:=1 to n do
       begin
	for j:=1 to n do
	c[j]:=a[i,j];
	proc(c,g,k,n,m);
	for q:=1 to k do
	write(a[i,m[k]]:4);
	writeln;
      end;
      readkey;
end.
Nexx вне форума Ответить с цитированием
Старый 30.11.2007, 18:16   #6
Nexx
Пользователь
 
Регистрация: 25.09.2007
Сообщений: 28
По умолчанию

За прогу кстати спс, все понятно))
Nexx вне форума Ответить с цитированием
Ответ


Купить рекламу на форуме - 42 тыс руб за месяц

Опции темы Поиск в этой теме
Поиск в этой теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Паскаль. Задачка по массиву -ZaK- Помощь студентам 6 18.10.2010 00:08
Паскаль. Задачка с рекурсией! Irdis Помощь студентам 10 14.04.2008 00:00
Паскаль. Задачка с массивами. ProPaL Помощь студентам 4 11.11.2007 18:58