LAB3_Estrutura
-
Upload
jose-miranda -
Category
Documents
-
view
212 -
download
0
Transcript of LAB3_Estrutura
FACULDADE METROPOLITANA DA GRANDE FORTALEZALAB2-Tempo de performance de um a!or"#moLAB 2– AP1 – Estruturas e Procedimentos em C
No código em C abaixo, faça o que se pede:
¬ Explique o que esse código realiza
¬ Comente as linha de comando dentro da função principal
¬ O que ocorre se nós digitarmos uma posição não existente do etor!
¬ "erifique o grau de complexidade do algoritmo pelo princ#pio do pior caso
¬ $mplemente para que o usu%rio decida o tamanho do etor
&include'stdio(h)
&include'conio(h)
&include'stdlib(h)
int main* +
int etor-.//0, posicao, i, n, alor1
s2stem*3cls3+1
printf*3Entre com o numero de elementos do
etor4n3+1
scanf*35d3, 6n+1
printf*3Entre com 5d elementos4n3, n+1
for (i = 0; i< n; i++)
scanf*35d3, 6etor-i0+1
printf*3Entre com uma posição desse
etor4n3+1
scanf*35d3, 6posicao+1
printf*3Entre com o alor inteiro
aleatorio4n3+1
scanf*35d3, 6alor+1
for (i = n - 1; i = !osicao - 1; i--)
etor-i7.0 8etor-i01
etor-posicao9.0 8 alor1
printf*3"etor resultante 5c4n3,./+1
for (i = 0; i <= n; i++)
printf*35d4n3, etor-i0+1 getch*+1 ;
¬ <ma maneira de determinar o tempo de execução de um algoritmo = definir esse algoritmo como
sendo uma função fora do escopo da função principal que chama esta função e atra=s dem=todos e estruturas de tempo cedidas pelo sistema pode9se calcular o tempo de processo( Oalgoritmo da função e a função principal para estimar o tempo que lea o processo(
void funcao( ) {
printf("funcao( ) inicia \n");
int P[3][3], A[3][3], B[3][3];
for(i=0;i< i++){
for(j=0;j<n; j++){
P[i, j] =0;
for(=0;<n;++){
P[i,j] = P[i,j] + A[i,] ! B[,j]
Compile e execute para eentuais problemas de sintaxe
>etermine o tempo de processo do algoritmo funcao* +
?ual ob@etio do algoritmo funcao* + !
Comente cada linha de comando do algoritmo funcao* +
>etermine o grau de complexidade do algoritmo funcao * + pelo princ#pio do pior caso
Aodifique o tamanho para matrizes BxB e determine o tempo de processo
#inc$ud% <ti&%'
#inc$ud% <*tdio'
int &ain()
{ c$oct t;
t = c$oc();
funcao( );
t = c$oc( ) t;
dou-$% t%&poto&ado = ((dou-$%)t)/./.12P42.;
printf("funcao( ) $%vou 5f *%6undo* para %7%cutar\n",
t%&poto&ado);
r%turn 0;
No algoritmo a seguir faça o que se pede:
.( Compile e execute para eentuais problemas
( Explique o que o algoritmo realiza
( Comente cada linha de comando interno a função principal
D( >etermine o grau de complexidade usando o princ#pio do pior caso
B( Compare o tempo de execução desse algoritmo com o do algoritmo anterior
&include'stdio(h)&include'conio(h)&include'stdlib(h)oid main* + int a-.//0, pos, i, n, item1 s2stem *clsF+1 printf*3Entre com o numero de elementos do
etor4n3+1 scanf*35d3, 6n+1 printf*3Entre com 5d elementos4n3, n+1 for *i 8 /1 i' n1 i77+
scanf*35d3, 6a-i0+1 printf*3Entre com uma posição
existente no etor4n3+1 scanf*35d3, 6pos+1 for *i 8 pos9.1i'n1i77+ a-i0 8 a-i7.01 printf*3O etor resultante
5c4n3,./+1for *i 8 /1 i 'n9.1 i77+
printf*35d4n3, a-i0+1 getch*+1 ;
Escrea um programa em C para multiplicação entre duas matrizes para
• Comente cada linha de comando interno a função principal
• >etermine o grau de complexidade usando o princ#pio do pior caso
• Compare o tempo de execução desse algoritmo com o do algoritmo anterior
¬ ?uestion%rio
.( Considere o algoritmo que implementa o seguinte processo: uma coleção desordenada de
elementos = diidida em duas metades e cada metade = utilizada como argumento para a
reaplicação recursia do procedimento( Os resultados das duas reaplicaçGes são, então,
combinados pela intercalação dos elementos de ambas, resultando em uma coleção
ordenada( ?ual = a complexidade desse algoritmo(
Hos=mirandadasilafilho