2
FACULDADE METROPOLITANA DA GRANDE FORTALEZA LAB2-Tempo de performance de um a!or"#mo LAB 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*3Ent re com 5d elementos4n3, n+1  for (i = 0; i< n; i++)  scanf*35d3, 6etor-i0+1  prin tf*3E ntre com uma posi ção desse etor4n3+1  scanf*35d3, 6posicao+1  pri ntf *3E ntr e com o alor int eir o aleatorio4n3+1  scanf*35d3, 6alor+1  for (i = n - 1; i = !osicao - 1; i--)  etor-i7.0 8etor-i01  etor-posic ao9.0 8 alor1  printf*3"etor resultante 5c4n3,./+1  for (i = 0; i <= n; i++)  printf*35d 4n3, 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 de m=todos e estruturas de tempo cedidas pelo sistema pode9se calcular o tempo de processo( O algoritmo 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;

LAB3_Estrutura

Embed Size (px)

Citation preview

 

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