Sie sind auf Seite 1von 42

Algoritmo e Programao

Tathiana E. Silva (tathiana.sb@gmail.com)

Algoritmos x Programao
Algoritmo um conjunto finito de regras,
bem definidas, para a soluo de um problema em um tempo finito.

Programa um algoritmo codificado (escrito)


em uma linguagem de programao (C/C++). A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da Bell Laboratories. Ela uma linguagem de propsito geral, sendo adequada programao estruturada.

Diretivas de Compilao
Comandos que indicam algumas tarefas a serem executadas antes do programa, como por exemplo a incluso de uma biblioteca.
Biblioteca um conjunto de comandos j criados pela linguagem e que devem ser carregados previamente para poderem ser utilizados no programa. Sempre comea com #include e os arquivos tem extenso .h. Ex: #include <stdio.h>
inclui os comandos de entrada e sada de dados

Sintaxe do Programa
Todo programa C inicia sua execuo na funo main(). No incio da funo existe um { e no final um }.
Cada instruo encerra com ; (ponto e vrgula) que faz parte do comando. Comentrios so informaes que no sero executadas. Elas devem ser colocados das seguintes formas: /* comentrio */ ou // comentrio

Sintaxe do Programa
A estrutura bsica de um programa C :
#include <stdio.h> main( ) { // rea de declarao de variveis /* rea de comandos do programa */ }

Constantes e Variveis
O nome das variveis deve sempre comear com uma letra ou com o caractere _ e pode ser seguido por um ou mais caracteres alfanumricos. A linguagem C case sensitive, ou seja, para ela a varivel X e a varivel x so diferentes.
Todas as variveis devem ser declaradas antes de poderem ser utilizadas. A forma de declarar : tipo nome_varivel;

Tipos de Dados
Os tipos de dados existentes na linguagem C so:
int : nmero inteiro float : nmero decimal char : caracter Comparando com algoritmo temos: inteiro real caracter int float char

Atribuio de Valores
Para atribuir um valor a uma varivel na linguagem C utiliza-se o sinal de igual (=).
Ex: int a; a = 0;
//cria a varivel de nome a //atribui o valor 0 na varivel a

A atribuio pode ser feita no momento da declarao da varivel:

int a = 0;
Comparando com algoritmo temos: a <- 0 a = 0;

Operadores Aritmticos
Soma:
Subtrao: Multiplicao:

+
*

Diviso:

Resto da Diviso: %

Na linguagem C, as operaes podem ter seus operadores de forma combinada: x=x+1; x+=1; x=x-5; x-=5; x=x*(y+1); x*=y+1;

Operadores Relacionais
Maior que:
Maior ou igual: Menor que:

>
>= <

Menor ou igual:
Igual a: Diferente:

<=
== !=

Os resultados desse operadores sempre so Verdadeiro (nmero diferente de zero) ou Falso (nmero igual a zero).

Incremento e Decremento
Na linguagem C existe uma forma direta de incrementar o valor de uma varivel, ou seja, de somar 1 ao seu valor:
++x; x++; Ex:
//incrementa x antes de usar seu valor //incrementa x depois de ter utilizado seu valor

#include <stdio.h> main( ) { int x=10; printf (x=%d\n,x++); printf (x=%d\n,x); printf (x=%d\n,++x); printf (x=%d\n,x); }

//imprime //imprime //imprime //imprime

o o o o

valor valor valor valor

10 11 12 12

Sada de Dados
A funo padro da linguagem C para imprimir mensagens e valores na tela o printf().
printf(expresso, argumentos); Comparando com algoritmo temos: escreva(expresso, argumentos) printf(expresso, argumentos);

Sada de Dados
Para imprimir valor de argumento deve-se incluir na expresso um controle que indica o formato do valor que ser exibido. Ex: printf(Cinco igual a %d, 5);
Os controles que indicam os formatos so: %d inteiro %f float %c char Podem existir vrios argumentos no mesmo comando, basta separ-los com uma vrgula.

Sada de Dados
Na expresso podem ser includos caracteres de controle como:
\n \t \b \" \\ nova linha tab volta um caractere mostra caractere aspas mostra caractere barra

Sada de Dados
Para determinar a quantidade de casas decimais que ser usada ao imprimir um nmero real deve-se modificar o controle acrescentando essa informao. Ex:
#include <stdio.h> main() { float x=1234,56; printf(%f, x); printf(%4:2f,x); printf(%10:1f,x); }

//imprime 1234,56000000 //imprime 1234,56 //imprime 1234,5

Entrada de Dados
A funo padro da linguagem C para entrada de dados pelo teclado o scanf().
scanf(expresso, argumentos); Comparando com algoritmo temos: leia(varivel) scanf(expresso, argumentos);

Entrada de Dados
Na expresso deve-se determinar o tipo de valor que ser lido (%d ou %f ou %c) e no argumento tem o nome da varivel que receber o valor lido precedido pelo & para indicar que endereo de memria. Ex:
scanf(%d, &x); scanf(%f, &y); scanf(%c, &z);
//l um valor inteiro para varivel x //l um valor real para varivel y //l um caractere para varivel z

Comandos Condicionais
Na linguagem C o comando condicional mais simples o if else.
if (condio) comando1; else comando2; Comparando com algoritmo temos:

se condio entao comando1 Senao comando2 fimse

if (condio) comando1; else comando2;

Comandos Condicionais
Ex:
#include<stdio.h> main() { int a,b; printf("digite dois nmeros:"); scanf("%d%d",&a,&b); if (b!=0) printf("%d\n",a/b); else printf("diviso por zero\n"); }

Comandos Condicionais
No exemplo anterior o comando if tinha apenas uma nica instruo a ser executada. Para que possam ser executadas vrias instrues necessria usar a representao de instruo composta :
Uma chave aberta ( { ) Uma sequncia de instrues (cada uma terminada por ponto e vrgula ;) Uma chave fechada ( } )

Comandos Condicionais
Existe ainda uma estrutura condicional para casos de seleo mltipla: o switch - case.
switch(varivel) { case valor1: comandos 1; break; case valor2: comandos 2; break; ... default: comandos; }

Comandos Condicionais
A varivel testada sucessivamente comparando com os valores de cada caso. Ao encontrar uma coincidncia, o comando ou o bloco de comandos executado. Se nenhuma coincidncia for encontrada o comando default ser executado. O default opcional. A sequncia de comandos executada at que o comando break seja encontrado. Se no houver o comando break, todos os comandos abaixo sero realizados em sequncia, mesmo que estejam declarados em outro bloco de comandos.

Comandos Condicionais
Comparando com algoritmo temos:
escolha varivel caso valor1 comandos 1 caso valor2 comandos 2 ... outrocaso comandos fimescolha switch (varivel) { case valor1: comandos 1; break; case valor2: comandos 2; break; ... default: comandos; }

Comandos Condicionais
Ex:
#include<stdio.h> main() { int x; printf("1. incluir\n"); printf("2. alterar\n"); printf("3. excluir\n"); printf("Digite sua opo:"); scanf(%d,&x); switch(x) { case 1: printf("escolheu incluso\n"); break; case 2: printf("escolheu alterao\n"); break; case 3: printf("escolheu excluso\n"); break; default: printf("opo invlida\n"); } }

Comandos de Repetio
O comando mais simples de repetio o for que define um valor inicial a uma varivel e vai modificando-o automaticamente a cada execuo:
for(inicializao; condio; incremento) comando; Inicializao: atribuio de um valor varivel de controle; Condio: teste que verifica quando o comando de repetio ser encerrado; Incremento: modificao que ser realizada no valor da varivel a cada execuo

Comandos de Repetio
Comparando com algoritmo temos:
para varivel de valor-inicial ate valor-fim faca comando fimpara

for(inicializao; condio; incremento) comando;

Comandos de Repetio
Ex: Imprime valores de 1 a 100 um em cada linha.
#include<stdio.h> main() { int x; for(x=1;x<100;x++) printf("%d\n",x); } Obs: para mais de um comando no esquecer de usar a instruo composta com { e }

Comandos de Repetio
Outros exemplos:
Para mudar o valor da varivel de 2 em 2

for(x=1;x<100;x+=2) printf("%d\n",x);
Para usar mais de uma varivel de controle no mesmo comando for for (x=0,y=0;x+y<100;++x,++y) printf("%d ",x+y);

Comandos de Repetio
Outro comando de repetio o while que testa uma condio e executa um comando caso a condio seja verdadeira. Ao chegar no fim do comando um novo teste ser executado para se determinar se a repetio continua ou se termina (caso o resultado do teste seja falso):
while(condio) comando; A condio testada antes de se lanar a execuo do comando.

Comandos de Repetio
Comparando com algoritmo temos:
enquanto condio faca comando fimpara

while(condio) comando;

Comandos de Repetio
Ex: L caracteres do teclado at que a letra a seja digitada.
#include<stdio.h> main() { char ch; while(ch != a) scanf("%c",&ch); } Obs: para mais de um comando no esquecer de usar a instruo composta com { e }

Comandos de Repetio
O ltimo comando de repetio o do-while que executa um comando e depois testa uma condio para se determinar se a repetio continua ou se termina (caso o resultado do teste seja falso):
do {

comando; } while(condio); Ele resliza sempre pelo menos uma execuo do comando j que o teste s no fim.

Comandos de Repetio
Comparando com algoritmo temos:
repita comando ate condio

do {

comando; } while(condio);

Comandos de Repetio
Ex: L caracteres do teclado at que a letra a seja digitada.
#include<stdio.h> main() { char ch; do { scanf("%c",&ch); } while(ch != a); }

Vetor
Vetores so listas ordenadas de determinados tipos de dados. Na linguagem C o vetor inicia com ndice 0 (primeiro elemento do vetor e vai at o ltimo elemento declarado na varivel).
Ex: vetor para armazenar as notas de uma turma. Notas Posio 6,1 2,3 9,4 5,1 8,9 9,8 0 1 2 3 4 5 10 6 7,0 7

Vetor
Na linguagem C declarado da seguinte forma:
tipo nome_vetor [tamanho]; Ex: float nota [8]; char nome_cliente [50]; Comparando com algoritmo temos: idade:vetor [1..10] de inteiro int idade [10];

Vetor
Ex: Colocar os nmeros de 1 a 5 no vetor.
#include<stdio.h> main() { int vet [5], i; for (i=0; i<5; i++) vet[i] = i + 1; }

Ex2: Colocar os nmeros pares de 0 a 18 no vetor.


#include<stdio.h> main() { int x [10], t; for (t=0; i<10; i++) { x[t]=t*2; printf("%d\n",x[t]; } }

Vetor
Ex3: Ler notas de 5 alunos e calcular a mdia final.
#include<stdio.h> main() { int notas[5],i,soma; for(i=0;i<5;i++) { printf("Digite a nota do aluno %d: ",i); scanf("%d",&notas[i]); } soma=0; for(i=0;i<5;i++) soma=soma+notas[i]; printf("Media das notas: %d.",soma/5); }

String
Na linguagem C no existe um tipo de dado string, no seu lugar utilizado uma matriz de caracteres.
Uma string um vetor de caracteres, cujo final indicado com um caractere nulo (\0). Sendo assim, ao definir uma string, deve-se levar em considerao, alm do nmero de caracteres da string, o caractere nulo que termina a string. Ex: char nome [11] engenharia + \0

String
Alm dos comandos scanf e printf, no caso das strings existem tambm os seguintes comandos para:
Entrada de dados - gets(vetor) : l string at o <enter> e guarda em vetor;

Sada de dados
- puts(mensagem) : escreve mensagem na tela e coloca o \n no final.

String
Ex: Ler um nome e mostr-lo em seguida na tela.
#include<stdio.h> main() { int nome[50]; printf(Digite um nome: ); gets(nome); printf(Nome: %s.",nome); }

String
A biblioteca <string.h> inclui vrios comandos de manipulao de strings como:
- strcpy(string1,string2) : copia a string1 em string2; - strcat(string1,string2) duas strings em string1; - strcmp(string1,string2) duas strings. : : concatena compara as as

Das könnte Ihnen auch gefallen