Scrigroup - Documente si articole

     

HomeDocumenteUploadResurseAlte limbi doc
AccessAdobe photoshopAlgoritmiAutocadBaze de dateCC sharp
CalculatoareCorel drawDot netExcelFox proFrontpageHardware
HtmlInternetJavaLinuxMatlabMs dosPascal
PhpPower pointRetele calculatoareSqlTutorialsWebdesignWindows
WordXml


Probleme cu algoritmi si cheme logice

algoritmi



+ Font mai mare | - Font mai mic



Probleme

Problema nr. 1

Sa se prezinte sub forma de chema logica si instructiunea unui limbaj de programare sau pseudocod un algoritm eficient care sa determine pentru o matrice de n linii si m coloane a carei elemente se citesc de la tastatura urmatoarele:



a) media aritmetica a elementelor de pe fiecare linie

b) media aritmetica a elementelor de pe fiecare coloana

c) valoarea elem. maxim si locul in care acesta se afla de pe fiecare linie

d) valoarea elem. maxim si locul in care acesta se afla de pe fiecare coloana

e) valoarea elem. minim si locul in care acesta se afla de pe fiecare linie

f) valoarea elem. minim si locul in care acesta se afla de pe fiecare coloana

g) elementul maxim la nivel de matrice

h) elementul minim la nivel de matrice

program matricea_de_la_curs;

type matrice=array[1..20,1..20] of integer;

var a:matrice;

max,max2,min,min2,w,z,i,p,maa,m,n,d,e,f,g,minn,maxx,j,s,ma,x,y:integer;

begin

writeln('dati nr de linii si nr de coloane');

write('n=');

readln(n);

write('m=');

readln(m);

for i:=1 to n do

for j:=1 to m do

begin

writeln('a[',i,',',j,']=');

read(a[i,j]);

end;

a) for i:=1 to n do

begin

s:=0;

for j:=1 to m do

s:=s+a[i,j];

ma:=(s div m);

writeln('media aritmetica pe linia ',i ,'=',ma);

readln;

end;

b) for j:=1 to m do

begin

p:=0;

for i:=1 to n do

p:=p+a[i,j];

maa:=(p div n);

writeln('media aritmetica pe coloana ',j,'= ',maa);

readln;

end;

c) for i:=1 to n do

begin

max:=-3200;

for j:=1 to m do

if a[i,j]>max then

begin

max:=a[i,j];

x:=j;

end;

writeln('maximul liniei ',i,' este elementul a[',i,',',x,'] si este egal cu ',max);

readln;

end;

d) for j:=1 to m do

begin

max2:=-3200;

for i:=1 to n do

if a[i,j]>max2 then

begin

max2:=a[i,j];

y:=i;

end;

writeln('maximul coloanei ',j,' este elementul a[',y,',',j,'] si este egal cu ',max2);

readln;

end;

e) for i:=1 to n do

begin

min:=3200;

for j:=1 to m do

if a[i,j]<min then

begin

min:=a[i,j];

w:=j;

end;

writeln('minimul liniei ',i,' este elementul a[',i,',',w,'] si este egal cu ',min);

readln;

end;

f) for j:=1 to m do

begin

min2:=3200;

for i:=1 to n do

if a[i,j]<min2 then

begin

min2:=a[i,j];

z:=i;

end;

writeln('minimul coloanei ',j,' este elementul a[',z,',',j,'] si este egal cu ',min2);

readln;

end;

g) maxx:=-3200;

minn:=3200;

for i:=1 to n do

for j:=1 to m do

if a[i,j]>maxx then

begin

maxx:=a[i,j];

d:=i;

e:=j;

end;

h) for i:=1 to n do

for j:=1 to m do

if a[i,j]<minn then

begin

minn:=a[i,j];

f:=i;

g:=j;

end;

writeln('elementul maxim al matricei este a[',d,',',e,']=',maxx);

writeln('elementul minim al matricei este a[',f,',',g,']=',minn);

readln;

end.

SCHEMA LOGICA:

Problema nr. 2

Se da un vector cu n elemente numere intregi. Sa se mute la sfarsitul vectorului elementele sale nule pastrand ordinea celorlalte elemente.

program ddd;

type vector=array[1..20] of integer;

var v:vector;

n,i,j,k:integer;

begin

write('dati numarul de elemente');

readln(n);

for i:=1 to n do

begin

write('v[',i,']=');

readln(v[i]);

end;

for i:=1 to n-1 do

for j:=i+1 to n do

if v[i]=0 then

begin

k:=v[i];

v[i]:=v[j];

v[j]:=k;

end;

for i:=1 to n do

writeln('v[',i,']=',v[i]);

readln;

end.

SCHEMA LOGICA:

Problema nr. 3

Sa se realizeze un program pentru evaluarea expresiei:

A +B, daca C≥0

E=

A-B, daca C<0

Analizand problema data, se observa ca datele de intrare sunt A, B si C. Algoritmul va testa pe C, si, in functie de valoarea sa, va calcula pe E fie ca A+B, fie ca A-B.

program prg2_pagina_187;

var a,b,c:integer;

e:real;

begin

write('Introduceti valoarea pentru a= ');read(a);

write('Introduceti valoarea pentru b= ');read(b);

write('Introduceti valoarea pentru c= ');read(c);

e:=0;

if (c<0) then e:=(a*a)-b

else

if (c=0) then e:=sqrt((a*a)-b)

else e:=(1/(a*a))-b;

write('E:= ',e:8:2);

readln;

end.

SCHEMA LOGICA:

Problema nr. 4

Sa se verifice daca 2 numere sunt prietene

Doua numere sunt prieten daca primul numar este = cu suma divizorilor celui de-al doilea mai putin el insusi si cel de-al doilea este egal cu suma divizorilor primului numar mai putin el insusi

n=220 1+2+4+5+10+11+20+22+44+55+110

m=284 1+2+4+71+142

s1 = suma divizorilor lui n mai putin el insusi

s2 = suma divizorilor lui m mai putin el insusi

n si m prietene daca s1=m si s2=n

program lalala;

var m,n,s1,s2,i:integer;

begin

write('n=');

readln(n);

write('m=');

readln(m);

for i:=1 to n-1 do

if n mod i=0 then s1:=s1+i;

for i:=1 to m-1 do

if m mod i=0 then s2:=s2+i;

if (s1=m) and (s2=n) then writeln('aceste doua numere sunt prietene')

else writeln('din pacate nu sunt prietene');

readln;

end.

SCHEMA LOGICA:

Probleme de logica:

Problema nr. 5:

In aceasta vara, batranul Trica a murit, lasand proprietatile sale ca mostenire nepotului sau Andi, prietenul meu. El a mostenit si castelul Towertia, bantuit de fantome. Incepand cu ora 12 noaptea pana dimineata se aud in tot castelul doua zgomote descifrabile: un cantat duios la vioara si un ras puternic. Andi a observat anumite obiceiuri:

cand el canta la pian si fantoma nu rade, fantoma care canta la vioara isi schimba activitatea (daca canta-tace, daca tacea-canta); altfel ea face in fiecare minut ce facea in cel precedent;

cand fereastra este inchisa fantoma care rade face ce facea cealalta fantoma in minutul precedent (rade daca cealalta canta, tace daca cealalta tacea);

cand fereastra este deschisa, fantoma care rade face opusul la ceea ce cealalta facea in minutul precedent.

Andi vrea sa stie cum sa scape de fantome (sa le faca sa taca)!

Rezolvare:

3: cand fereastra este deschisa, fantoma care rade face opusul la ceea ce cealalta facea in minutul precedent.

1: cand el canta la pian si fantoma nu rade, fantoma care canta la vioara isi schimba activitatea (daca canta-tace, daca tacea-canta); altfel ea face in fiecare minut ce facea in cel precedent;

2: cand fereastra este inchisa fantoma care rade face ce facea cealalta fantoma in minutul precedent (rade daca cealalta canta, tace daca cealalta tacea)

Problema nr. 6

Duminica, Marius si Radu au fost sa vada la hipodrom cursa de cai. Mai intai s-au dus sa vada caii. Au facut pariuri pe primele cinci locuri.

Radu a crezut astfel:

Doodoo; 2) Azur; 3) Elfy; 4)Candy; 5) Emily.

Marius a pariat astfel:

Azur; 2) Emily; 3)Candy; 4)Doodoo; 5) Elfy

Rezultatele au aratat ca nici unul nu a castigat:

1)Marius nu a ghicit locul nici unui cal

2)Marius nu a ghicit nici macar ordinea a cate doi cai unul dupa altul

Radu a fost mai aproape de realitate:

3)A ghicit locurile a doi cai;

4)A ghicit ordinea finala a doua perechi de cai unul dupa altul.

Care a fost rezultatul ?

Radu

Doodoo

Azur

Elfy

Candy

Emily

Marius

Azur

Emily

Candy

Doodoo

Elfy

Urmarind tabelul de mai sus putem afirma ca:

Pe locul I nu va fi Doodoo sau Azur

Pe locul II nu va fi Emily

Pe locul III nu va fi Candy

Pe locul IV nu va fi Doodoo

Pe locul V nu va fi Elfy


Deci Doodoo poate fi pe locurile II sau V.

Ordinea este:

Elfy

Doodoo

Azur

Candy

Emily

Problema nr. 7

Un batranel se duce la piata (mai bine statea acasa) sa vanda niste oua. Un tanar neatent l-a imbrancit si cosul a cazut spargand ouale. vinovatul vrand sa isi rascumpere greseala l-a intrebat :

-Cate oua au fost in cos?

-Nu-mi aduc aminte, dar stiu ca daca le scoteam cate 2,cate 3,cate 4,cate 5 sau cate 6, in cos ramanea mereu un singur ou, iar daca le scoteam cate 7 , nu ramanea nici unul.

Dupa cateva minute de gandire, tanarul a calculat cate oua erau.

Tu poti gasi numarul de oua din cos?

Rezolvare:

batranelul spune ca daca scotea ouale cate 7 nu mai ramanea nici un ou un cos de unde tragem concluzia ca numarul oualor trebuie sa fie un multiplu de 7

mai spune ca daca le scotea cate 2,cate 3,cate 4,cate 5 sau cate 6, in cos ramanea mereu un singur ou de unde rezulta ca din numarul care este multiplu de 7 daca scadem 1 trebuie sa ramana un numar care sa fie divizibil si cu 2 si cu 3 si cu 4 si cu 5 si cu 6

deci cautam un numar care sa aibe ultima cifra 1 sau 6

astfel 7, 14 sunt excluse

incercam 21:7=3

21-1=20:2=10

20:3 nu este divizibil

cautam in continuare

28, 35, 42, 49 sunt excluse

verificam 56:7=8

56-1=55:2 nu este divizibil

63, 70, 77, 84 sunt excluse

continuam cu 91:7=13

91-1=90:2=45

:3=30

:4=25

:5=18

:6=15

Rezulta ca batranelul avea in cos exact 91 de oua.



Politica de confidentialitate | Termeni si conditii de utilizare



DISTRIBUIE DOCUMENTUL

Comentarii


Vizualizari: 4127
Importanta: rank

Comenteaza documentul:

Te rugam sa te autentifici sau sa iti faci cont pentru a putea comenta

Creaza cont nou

Termeni si conditii de utilizare | Contact
© SCRIGROUP 2024 . All rights reserved