menu
person

Задача №2893

Дан ве­ще­ствен­ный мас­сив из 50 эле­мен­тов. Эле­мен­ты мас­си­ва мо

Поиск задачи:

Дан ве­ще­ствен­ный мас­сив из 50 эле­мен­тов. Эле­мен­ты мас­си­ва могут при­ни­мать про­из­воль­ные зна­че­ния. Опи­ши­те на рус­ском языке или на одном из язы­ков про­грам­ми­ро­ва­ния ал­го­ритм, ко­то­рый на­хо­дит и вы­во­дит наи­мень­ший номер от­ри­ца­тель­но­го эле­мен­та мас­си­ва или со­об­ще­ние, что та­ко­го эле­мен­та нет.

Ис­ход­ные дан­ные объ­яв­ле­ны так, как по­ка­за­но ниже. За­пре­ща­ет­ся ис­поль­зо­вать пе­ре­мен­ные, не опи­сан­ные ниже, но раз­ре­ша­ет­ся не ис­поль­зо­вать часть из них.

 

 

 

 

 

Пас­каль Бей­сик

 

const
 N = 50; var
a: array [1..N] of real; 
i, j: integer; 
begin
for i := 1 to N do 
readln(a[i]);
...
end.

 

 

N = 50
 DIM A(N) AS REAL 
 DIM I, J AS INTEGER 
 FOR 1 = 1 TO N 
 INPUT A (I) 
 NEXT I
...
 END

 

Си Ал­го­рит­ми­че­ский язык

 

#include <stdio.h> 
#define N 50 
void main(void) 
{float a[N]; 
int i, j;
for < i = 0; i < N; i++) 
scanf{"% f ", & a [i] );
...
}

 

 

алг 
нач
цел N = 50 
ве­щтаб а[1:N] 
цел 1, j
нц для i от 1 до N 
ввод a [IT
кц
...
кон

 

Есте­ствен­ный язык

Объ­яв­ля­ем мас­сив А из 50 эле­мен­тов.

Объ­яв­ля­ем це­ло­чис­лен­ные пе­ре­мен­ные I, J.

В цикле от 1 до 50 вво­дим эле­мен­ты мас­си­ва А с 1-го по 50-й.

...

 

В ка­че­стве от­ве­та вам не­об­хо­ди­мо при­ве­сти фраг­мент про­грам­мы (или опи­са­ние ал­го­рит­ма на есте­ствен­ном языке), ко­то­рый дол­жен на­хо­дить­ся на месте мно­го­то­чия. Вы мо­же­те за­пи­сать ре­ше­ние также на дру­гом языке про­грам­ми­ро­ва­ния (ука­жи­те на­зва­ние и ис­поль­зу­е­мую вер­сию языка про­грам­ми­ро­ва­ния, на­при­мер Borland Pascal 7.0) или в виде блок-схемы. В этом слу­чае вы долж­ны ис­поль­зо­вать те же самые ис­ход­ные дан­ные и пе­ре­мен­ные, какие были пред­ло­же­ны в усло­вии (на­при­мер, в об­раз­це, за­пи­сан­ном на есте­ствен­ном языке).

 

По­яс­не­ние.

 

 

 

ПАС­КАЛЬ БЕЙ­СИК
i : = 1 ;

while (i < N) and (a[i] >= 0)

do

i : = i + 1;

if a [i ] >= 0 then

writeln('нeт таких')

else

writeln(i);

I = 1

WHILE I < N AND A (I) >= 0

I = I + 1

ENDW

IF A (I) >=0 THEN

PRINT "нет таких"

ELSE

PRINT I

ENDIF

 

 

 

СИ Ал­го­рит­ми­че­ский язык
for(i=0; i=0; i++);

if(a[i]>=0)

printf("нет таких");

else

printf("%d" , i);

i := 1

нц пока i < N- и a[i] >= 0 i i + 1

кц

если а [ i ] >= 0 то

вывод "нет таких"

иначе

вывод i

все

 

 

 

Есте­ствен­ный язык
За­пи­сы­ва­ем в пе­ре­мен­ную I на­чаль­ное зна­че­ние, рав­ное 1.

В цикле пока I мень­ше 50 и пока 1-й эле­мент не­от­ри­ца­тель­ный, уве­ли­чи­ва­ем пе­ре­мен­ную I на еди­ни­цу.

Если после окон­ча­ния цикла эле­мент мас­си­ва с но­ме­ром I не­от­ри­ца­тель­ный — вы­во­дим со­об­ще­ние, что от­ри­ца­тель­ных эле­мен­тов в мас­си­ве нет.

Иначе, после окон­ча­ния цикла вы­во­дим зна­че­ние пе­ре­мен­ной I.

 

 

При­ве­дем ре­ше­ние, ис­поль­зу­ю­щее толь­ко один цикл (один про­ход по мас­си­ву).

 

const n=50;

var a: array[1..n] of real;

i, j: integer;

begin

j:=0;

for i:=1 to n do

begin

readln(a[i]);

if (a[i]<0) and (j=0) then j:=i;

end;

if j=0 then writeln('no') else writeln(j);

end.

Категория: по информатике | Добавил: Просмотров: 1 | Теги: Ал­го­рит­мы обработки массивов | Рейтинг: 0.0/0
Всего комментариев: 0