Você está na página 1de 34

Algoritmos e Estruturas de Dados Fundamentais

(Material complementar de aula)


-

Linguagem C
- Introduo; E/S; Estruturas de Seleo e Repetio

Prof. MSc. Gilvan Martins Dures

Roteiro

Primeiro Programa em C Tipos, Variveis, Constantes e Operadores Entrada e Sada Estruturas Condicionais Estruturas de Repetio Exemplos (laboratrio) Exerccios

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Primeiro Programa C
#include <stdio.h> /* Meu Primeiro Programa */ int main () { printf (Oi, meu primeiro programa!\n"); return(0); }

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Tipos

Tipos de valores que podem ser armazenados e manipulados

int: inteiro ou um valor lgico (verdadeiro ou falso)


0, 1, -47 0 (zero) possui valor lgico falso Inteiro diferente de 0 (zero) possui um valor lgico verdadeiro 3.14, 1.0, -2.1 C, D, i
Algoritmos e Estruturas de Dados Fundamentais 2013.1 4

float: nmero real

char

Prof. MSc. Gilvan M. Dures

Variveis

Um local da memria identificado, atravs do qual possvel o armazenamento de um nico tipo. Formato:
Tipo nome;

Exemplo:
int minhaIdade;

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Atribuio

Usar = para atribuio de valor varivel. Exemplo:


minhaIdade = 25;

Pode ser combinado com a declarao da varivel

Exemplo: int minhaIdade = 25; float peso = 0.82;

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Constantes

Um local da memria identificado, atravs do qual possvel o armazenamento de um nico tipo e um nico valor. Formato:
#define NOME valor

Exemplo:
#define PI 3.1415926

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Sada

Para escrever algo na tela utilizamos a funo printf da seguinte forma:


printf("expresso de controle",argumentos);

Expresso de controle:

Caracteres a serem exibidos na tela e/ou cdigos de formatao que indicam o formato em que os argumentos devem ser escritos;

Exemplo:
printf("Este o numero dois: %d",2);

Cada argumento deve ser separado por vrgulas


printf(o numero %d menor que o numero %d \n",2,22);

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Cdigos de formatao

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

Entrada

A funo scanf() nos permite ler dados digitados no teclado. Sua sintaxe semelhante sintaxe do printf:
scanf("expresso de controle", argumentos);

A lista de argumentos deve ser o endereo na memria dos operandos. O endereo de um tipo bsico obtido atravs do smbolo "&.

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

10

Exemplo de Entrada e Sada


{

int num; printf("Digite um nmero: "); scanf("%d",&num); printf("\no nmero %d",num); printf("\no endereo e %u",&num);
}

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

11

Exemplo: Clculo da Mdia do aluno

Faa um programa para calcular a mdia ponderada de um aluno. Esse aluno tem duas avaliaes (valendo 10), sendo que a primeira com peso 3 e a segunda com peso 7.

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

12

Exemplo: Clculo da Mdia do aluno

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

13

Exemplo: Clculo da Mdia do aluno

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

14

Exemplo: Clculo da Mdia do aluno

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2013.1

15

Operadores de comparao

Servem para comparar valores de variveis


== (igual) != (diferente) > >= < <= x>=2 ; y!=0; x == y;

Exemplo Devolvem o valor lgico falso (0) se a comparao for falsa, ou valor lgico verdadeiro (diferente de 0) se a comparao for verdadeira.
Algoritmos e Estruturas de Dados Fundamentais 2012.1 16

Prof. MSc. Gilvan M. Dures

Estruturas condicionais IF

Utilizadas para executar uma parte do cdigo sob uma condio.

Se (condio for verdadeira) ento...

Faa isto

Sintaxe C
if (condicao){ comandos }

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

17

Estruturas condicionais IF

Exemplo int a = 4; if (a>0){ printf(a maior que zero !!!; }

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

18

Estruturas condicionais IF... ELSE

Se (condio for verdadeira) ento...

Faa isto Faa isto


if (condicao){ comandos } else { comandos alternativos }

Caso contrrio...

Sintaxe C

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

19

Estruturas condicionais IF... ELSE

Exemplo
int a = 4; if (a>0){ printf(a maior que zero !!!; } else{ printf(a no maior que zero !!!; }

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

20

Estruturas condicionais SWITCH

Serve para agrupar vrios if.. else.. aninhhados em uma estrutura mais clara e legvel.
if (condicao){ //comandos } else if (condicao 2){ //comandos } else if (condicao 3){ //comandos } else if (condicao 3){ //comandos }
switch (valor){ case 1: comandos break; case 2: comandos break; default: comandos break; }
21

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

Estruturas condicionais SWITCH

Exemplo
char pontuacao; printf("\n Digite um caracter de pontuacao:"); scanf("%c",&pontuacao); switch( pontuacao ) { case '.': printf("Voce digitou Ponto.\n" ); break; case ',': printf("Voce digitou Virgula.\n" ); break; case ':': printf("Voce digitou Dois pontos.\n" ); break; case ';': printf("Voce digitou Ponto e virgula.\n"); break; default : printf("Nao eh pontuacao.\n" ); };

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

22

Operadores lgicos

Tambm chamados de operadores booleanos, tem como resultado um valor booleano (verdadeiro ou falso) Normalmente utilizados quando se quer mltiplas condies ou condies alternativas

E:

&&

OU: ||

Sintaxe:
(condicao1) && (condicao2) (condicao1) || (condicao2)

Obs.: Uma condio pode ser composta por vrias condies


Algoritmos e Estruturas de Dados Fundamentais 2012.1 23

Prof. MSc. Gilvan M. Dures

Operadores lgicos

Exemplo (1)

int num = 15; if (num>10) && (num<21){ printf(num est entre 10 e 20); }

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

24

Operadores lgicos

Exemplo (2)

int num = 8; if (num<10) || (num>100){ printf(num menor que 10 ou num maior que 100); }

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

25

Estrutura de Repetio DO...WHILE

Permite repetir um bloco de cdigo vrias vezes, sob uma determinada condio. Sintaxe:
do{

bloco }while(condio);
onde:

condio uma expresso lgica ou numrica. bloco um conjunto de instrues (ou comandos).

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

26

Estrutura de Repetio DO...WHILE

Exemplo:
float num; do{ printf("Digite um numero positivo:"); scanf("%f",&num); }while(num <= 0.0);

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

27

Estrutura de Repetio WHILE

A estrutura while semelhante estrutura do.. while, porm, esta estrutura faz com que a condio seja avaliada em primeiro lugar.

Sintaxe:
while(condio) {

bloco
}

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

28

Estrutura de Repetio WHILE

Exemplo:
float num; scanf("%f",&num); while(num<=100) { printf(%f, num); num++; }

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

29

Estrutura de Repetio FOR


A estrutura for semelhante estruturas anteriores, no entanto, costuma ser utilizada quando se quer um nmero determinado de repeties.

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

30

Estrutura de Repetio FOR

Sintaxe:
for(inicializao; condio; incremento){

bloco
}

onde:

inicializao uma expresso de inicializao do contador. condio uma expresso lgica de controle de repetio. incremento uma expresso de incremento do contador. bloco um conjunto de instrues a ser executado.
31

Prof. MSc. Gilvan M. Dures

Algoritmos e Estruturas de Dados Fundamentais 2012.1

Estrutura de Repetio FOR

Exemplo: int i; for(i=1; i<=10; i++){ printf(" %d",i); }

O que o trecho de cdigo acima faz?


Prof. MSc. Gilvan M. Dures Algoritmos e Estruturas de Dados Fundamentais 2012.1 32

Estrutura de Repetio FOR

Exemplo (2): int i; for(i=10; i>0; i--){ printf(" %d",i); }

E agora?
Prof. MSc. Gilvan M. Dures Algoritmos e Estruturas de Dados Fundamentais 2012.1 33

Exerccios
Todos os exerccios realizados anteriormente com pseudocdigo devem ser feitos em C. Nao esquecam de analisar as mensagens de erros e utilizar as facilidades do debug do CodeBlocks!

Faa um programa para calcular a soma dos N primeiros mltiplos de um inteiro K, onde N e K so lidos e so nmeros inteiros e positivos.

Exemplo

entrada: N=5, K=2 Sada :2+4+6+8+10=30

Nome do arquivo: ma09SomaMultiplos_NomeAluno1-Aluno2.c


Prof. MSc. Gilvan M. Dures Algoritmos e Estruturas de Dados Fundamentais 2013.1 34