Vous êtes sur la page 1sur 16

Caractersticas fundamentais dum algoritmo Um algoritmo deve ter 5 caractersticas fundamentais: Finitude:um algoritmo deve sempre terminar aps

s um nmero finito de passos. Definio: cada passo de um algoritmo deve ser precisamente definido. As aces devem ser definidas rigorosamente e sem ambiguidades. Entradas: um algoritmo deve ter zero ou mais entradas, isto quantidades que lhe so fornecidas antes do algoritmo iniciar. Sadas: um algoritmo deve ter uma ou mais sadas, isto quantidades que tem uma relao especfica com as entradas. Eficincia:Um algoritmo deve ser eficiente. Isto significa que todas as operaes devem ser suficientemente bsicas de modo que possam ser em princpio executadas com preciso em um tempo finito por um ser humano usando papel e lpis. NOTA: Pode haver mais do que um algoritmo para resolver um problema. Por exemplo, para ir de casa at o trabalho, posso escolher diversos meios de transportes em funo do preo, conforto, rapidez, etc..

Representaes de algoritmos Linguagem Natural Os algoritmos so expressos directamente em linguagem natural (e.g. o portugus como no exemplo do bolo). Fluxograma (ou Diagrama de Fluxo) Esta um representao grfica que emprega formas geomtricas padronizadas para indicar as diversas aces e decises que devem ser executadas para resolver o problema. Pseudo-linguagem Emprega uma linguagem intermediria entre a linguagem natural e uma linguagem de programao para descrever os algoritmos.

No existe consenso entre os especialistas sobre qual a melhor maneira de representar um algoritmo. Actualmente a maneira mais comum de representar algoritmos atravs de uma pseudolinguagem ou pseudo-cdigo. Esta forma de representao tem a vantagem de o algoritmo seja escrito de uma forma que est prxima de uma linguagem de programao de computadores.

Fluxogramas & programao visual Representao grfica de um algoritmo. Programao visual: a utilizao de diagramas na programao. Descrevem o fluxo dum algoritmo atravs de um conjunto de figuras geomtricas padronizadas ligadas por setas de fluxo.

incio e fim de fluxograma

entrada e sada de dados

teste e deciso

conector na mesma pgina

Inicializao teste e actualizao

outras aces/sinstrues

conector para outra pgina

Estruturas lgicas de programao: estruturas de controlo Uma estrutura (de controlo) a unidade bsica da lgica de programao. Em meados da dcada de 60, alguns matemticos provaram que qualquer programa podia ser construdo atravs da combinao de 3 estruturas bsicas: sequncia, seleco e repetio. Sequncia

Seleco

Repetio

Exemplo em C: if-else
#include <stdio.h> void main() { int x, y,maior; scanf(%d%d\n,&x,&y); if (x > y) maior = x; else maior = y; printf(O maior dos dois inteiros = %d\n,maior); } retorn()
.

Exemplo em C: if

#include<stdio.h> void main() { int nota; printf(Introduza o valor da nota: ); scanf(%f,&nota); if ( (nota >= 9.0) && (nota < 9.5) ) nota = 9.5; printf(A nota = %f\n, nota); } retorn()

Exemplo em C: switch
#include <stdio.h> void main() { int count; scanf(%d,&count); switch count { case 5: printf(5\n); case 4: printf(4\n); case 3: printf(3\n); case 2: printf(2\n); case 1: printf(1\n); } } retorn()

break; break; break; break;

Exemplo em C: while
#include <stdio.h> void main() { int sum, k=1; sum = 0; // inicializacao da soma while (k <=100) { sum = sum + k; k = k + 1; //actualiza a variavel do ciclo }; printf(A soma =%i\n,sum); } retorn()

Exemplo: do - while

#include <stdio.h> main() { int sum, k=1; sum = 0; // inicializacao da variavel do ciclo do { sum = sum + k; k = k + 1; //actualiza a variavel do ciclo } while (k<=100); printf(A soma =%i\n,sum);

} retorn()

Exemplo em C: for

#include <stdio.h> void main() { int i; // variavel do ciclo int sum; sum = 0; // inicializacao da soma for (i=1; i <=100; i++) sum = sum + i; printf(A soma = %i\n,sum);

} retorn()

Algoritmo: Mostrar a mensagem Qual o cdigo de produto? Introduzir um valor inteiro para cod Mostrar a mensagem Qual o se preo base? Introduzir um valor real para pbase Se 'cod % 10 <= 4' verdadeira Ento Atribuir a iva o valor real 0.05 Seno Atribuir a iva o valor real 0.12 Atribuir a pfinal o valor real (pbase + pbase * iva) Mostrar a mensagem O preo final : Mostrar o valor de pfinal

#include <stdio.h> main ( ) { int cod; float iva, pbase, pfinal; printf(Qual o cdigo?\n); scanf(%d, &cod); printf(Qual o preo base?\n); scanf(%f, &pbase); if (cod % 10 <= 4) iva = 0.05; /* 0.05 = 5% */ else iva = 0.12; /* 0.12 = 12% */ pfinal = pbase + pbase * iva; printf(O preo final %f.\n, pfinal); Return(); }

Distancia euclidiana entre dois pontos

#include <stdio.h> #include <math.h> Int main() { Int x1;y1; x2;y2; Double distance Cout<<coordenadas ponto 1(x/y):; Cin>>x1>>y1; Cout<<coordenadas ponto 2(x/y):; Cin>>x2>>y2;

Distencia =sqrt (pow ((x2-x1),2)+ pow ((y2-y1),2);

Cout<<distancia =<<distancia<<endl; printf <<distancia =<<distancia<<endl; Return(); }

Distancia euclidiana entre dois pontos

#include <stdio.h> #include <math.h> Const double pi=3.1415 Int main() { Double area, perimetro Int raio Cout<<introduza o valor de raio:; Cin>>raio; Area=pi*pow(raio,2); Perimetro=2*pi*raio; Cout<<area<<area<<endl; Cout <<permetro:<< permetro <<endl; Return(); }

Distancia se ou seno

#include <stdio.h>

Int main() { Int lado1, lado2, area; Cout<<introduza medidas dos lados:; Cin>>lado1>>lado2; Area=lado1*lado2; If (lado1=lado2) Cout<<area do quadrado<<area; Else Cout <<area do rectangular = <<area; Return(); }

Calculo a media

#include <stdio.h>

Int main() { Int mat, po, ing,geo; Double media; Cout<<introduza as notas (mal/por/img/geo):; Cin>>mat>>por>>img>>geo; Media=(double)(mat+por+img+geo)/4 If(media >=9.5) Cout<<aprovado<< endl; else(media >=9.5) Cout<<reprovado<< endl; Return 0(); }

Intruo cotinua

#include <stdio.h>

Int main() { Int n; For(n=10;n>0;n--) { If (n==5) continue Cout<<n<<,; Cin>>mat>>por>>img>>geo; Media=(double)(mat+por+img+geo)/4 If(media >=9.5) Cout<<aprovado<< endl; else(media >=9.5) Cout<<reprovado<< endl; Return 0(); }

Calculo a somatrio entre dois limites

#include <stdio.h>

Int main() { Intlim1,lim2,min,max,soma,i; Cout<<introduza numero1 :; Cin>>lim1; Cout<<introduza numero2 :; Cin>>lim2; If(lim2>lim1) { Min=lim1; Max=lim2; } Else { Min=lim2; Max=lim1; } Soma =0 For (i=min;i<=max;i++) Soma =1

Cout<<somatorio [<< min<<,<<max] << soma endl; Return 0(); }

Calcular factorial de um numero

#include<stdio.h>

Int main() { Int factorial,I,numero; Cout<<introduza numero:; Cin>>numero; Factorial=1; For(i=1;<=numero;1++) Factorial x=1; Cout<<factorial (<<numero<<):<<factorial; Return (); }

Determine se um numero e primo

#include <stdio.h>

Int main () { Int I ;numero; Bool primo =true; Cout<<introduza numero:; Cin >>numero; I=2; White(primo==true &&<=(numero/2)) { If(numero%==0) Primo =falso; ++; } If (!primo) Cout <<o numero<<numero <<no e primo << endl; Else Cout <<o numero<<numer << e; Return (); }

#include <stdio.h>

Int main () { Int I ;numero; Bool primo =true; Cout<<introduza numero:; Cin >>numero; I=2; White(primo==true &&<=(numero/2)) { If(numero%==0) Primo =falso; ++; } If (!primo) Cout <<o numero<<numero <<no e primo << endl; Else Cout <<o numero<<numer << e; Return (); }

Distancia euclidiana entre dois pontos

#include <stdio.h> #include <math.h>

Int main () { Int x1, y1, x2, y2, Double distance Cout <<coordenadas ponto1 (x/y):; Cin>>x1>>y1 Cout <<coordenadas ponto2 (x/y):; Cin>>x2>>y2 Distancia=sqrt(pow((x2-x1),2)+ pow((y2-y1),2)));

Cout <<distancia=<<distancia<< endl; Return (); }

Vous aimerez peut-être aussi