Sunteți pe pagina 1din 42

INSTITUTO FEDERAL DE

EDUCAO, CINCIA E TECNOLOGIA


RIO GRANDE DO NORTE

Algoritmos
ANSI C - Controle de fluxo

Copyright IFRN
Agenda
Desvio condicional
O comando Se
Laos
O comando while
O comando do...while
O comando for
Exerccios

2 /18
Desvio condicional

if (Expresso)
Comando
else
Comando

3 /18
Desvio condicional

if (Expresso)
Comando
else
Comando

Valor booleano

Opcional

3 /18
Desvio condicional
int main (int argc, char ** argv){
float nota1,nota2,media;
scanf("%f %f",&nota1,&nota2);
media = (nota1+nota2)/2;
if (media >=7.0)
printf("Aluno aprovado!\n");
else
printf("Aluno em recuperao!\n");
return 0;
}

4 /18
Desvio condicional
Podem ser vrios comandos
Definido pelo agrupamento de comandos
Bloco de comandos
Delimitado por { e }

if (Expresso)
{ Comandos}
else
{ Comando }

5 /18
Operadores relacionais
== IGUAL (a==b)
!= DIFERENTE (a!=b)
> MAIOR (a>b)
< MENOR (a<b)
>= MAIOR IGUAL (a>=b)
<= MENOR IGUAL (a<=b)

6 /18
Operadores lgicos
&& E
(a>3 && b<c)
|| OU
(media<7 || faltas>20)
! NEGAO
(! (a==b))

7 /18
Exemplo
#include <stdio.h>

double calcula_salario(double salario_base, double vendas, double meta) {


double salario;
salario = salario_base + vendas * 0.05;
if (vendas >= meta)
salario = salario + ((vendas - meta) * 0.10);
if (salario > 1200.00)
salario = salario - (salario_base * 0.15);
return salario;
}

int main(int argc, char **argv) {


double salario, salario_base, vendas, meta;
scanf("%lf", &salario_base);
scanf("%lf", &vendas);
scanf("%lf", &meta);
salario = calcula_salario(salario_base, vendas, meta);
printf("%.2f", salario);
return 0;
}

8 /18
Laos
ANSI C define 3 formas de repetir trecho de
cdigo:
while
do...while
for
O GOTO tambm suportado, mas seu uso
desaconselhado

9 /18
While

while ( teste )

comando ou bloco;

IMPORTANTE
Bloco deve modificar o teste

10/18
While

while ( teste )

comando ou bloco;

IMPORTANTE
Bloco deve modificar o teste

10/18
While

while ( teste )

comando ou bloco;
teste

IMPORTANTE
Bloco deve modificar o teste

10/18
While

while ( teste )

comando ou bloco;
teste

IMPORTANTE comando ou bloco


de comandos

Bloco deve modificar o teste

10/18
While

while ( teste )

comando ou bloco;
teste

IMPORTANTE comando ou bloco


de comandos

Bloco deve modificar o teste

10/18
While

while ( teste )

comando ou bloco;
teste
F
V

IMPORTANTE comando ou bloco


de comandos

Bloco deve modificar o teste


fim do lao

10/18
While

#include <stdio.h>
int main(int argc, char *argv[]) {
int i = 0;
while (i < 10) {
printf("i=%d\n", i);
i++;
}
return 0;
}

11/18
While

#include <stdio.h>
int main(int argc, char *argv[]) {
int i = 0;
while (i < 10) {
Modifica printf("i=%d\n", i);
varivel i++;
usada no }
teste return 0;
}

11/18
While

#include <stdio.h>
int main(int argc, char *argv[]) {
int i = 0;
while (i < 10) {
printf("i=%d\n", i++);
i++;
}
return 0;
}

12/18
do...while
do

comando ou bloco;

while ( teste )

IMPORTANTE
Garante execuo do bloco
pelo menos uma vez

13/18
do...while
do

comando ou bloco;

while ( teste )

IMPORTANTE
Garante execuo do bloco
pelo menos uma vez

13/18
do...while
do

comando ou bloco;

while ( teste )

comando ou bloco
de comandos

IMPORTANTE
Garante execuo do bloco
pelo menos uma vez

13/18
do...while
do

comando ou bloco;

while ( teste )

comando ou bloco
de comandos

teste

IMPORTANTE
Garante execuo do bloco
pelo menos uma vez

13/18
do...while
do

comando ou bloco;

while ( teste )

comando
comando ou
ou bloco
bloco
de
de comandos
comandos

V
teste

IMPORTANTE
Garante execuo do bloco
pelo menos uma vez

13/18
do...while
do

comando ou bloco;

while ( teste )

comando
comando ou
ou bloco
bloco
de
de comandos
comandos

V
teste

IMPORTANTE F
Garante execuo do bloco fim do lao
pelo menos uma vez

13/18
do...while

#include <stdio.h>
int main(int argc, char **argv) {
int i = 0;
while (i < 10) {
printf("i=%d\n", i);
i++;
}
return 0;
}

14/18
do...while

#include <stdio.h> comando ou bloco


de comandos
int main(int argc, char **argv) {
int i = 0;
while (i < 10) {
printf("i=%d\n", i);
i++;
}
return 0;
}

14/18
do...while

#include <stdio.h> comando ou bloco


de comandos
int main(int argc, char **argv) {
int i = 0;
while (i < 10) { teste
printf("i=%d\n", i);
i++;
}
return 0;
}

14/18
do...while

#include <stdio.h> comando


comando ou
ou bloco
bloco
de
de comandos
comandos
int main(int argc, char **argv) {
int i = 0; V
while (i < 10) { teste
printf("i=%d\n", i);
i++;
}
return 0;
}

14/18
do...while

#include <stdio.h> comando


comando ou
ou bloco
bloco
de
de comandos
comandos
int main(int argc, char **argv) {
int i = 0; V
while (i < 10) { teste
printf("i=%d\n", i);
i++; F
} fim do lao
return 0;
}

14/18
For

for (inicializao ; teste ; complemento)

comando ou bloco;

15/18
For

for (inicializao ; teste ; complemento)

comando ou bloco;

Inicializao

15/18
For

for (inicializao ; teste ; complemento)

comando ou bloco;

Inicializao teste

15/18
For

for (inicializao ; teste ; complemento)

comando ou bloco;

Inicializao teste

V
comando ou bloco
de comandos

15/18
For

for (inicializao ; teste ; complemento)

comando ou bloco;

Inicializao teste

V
comando ou bloco
de comandos

complement

15/18
For

for (inicializao ; teste ; complemento)

comando ou bloco;

Inicializao teste

V
comando ou bloco
de comandos

complement

15/18
For

for (inicializao ; teste ; complemento)

comando ou bloco;

Inicializao teste
F
V
comando ou bloco
de comandos

fim do lao
complement

15/18
For
laco01.c
#include <stdio.h>
Inicializao
int main(int argc, char **argv) {
int i;
for (i = 0; i < 5; i = i + 1) teste
printf("i=%d\n", i);
V F
return 0;
} comando ou bloco
de comandos

fim do lao
complement

16/18
For
laco01.c
#include <stdio.h>
Inicializao
int main(int argc, char **argv) {
int i;
for (i = 0; i < 5; i = i + 1) teste
printf("i=%d\n", i);
V F
return 0;
} comando ou bloco
de comandos

fim do lao
Sada do programa
complement
i=0
i=1
i=2
i=3
i=4

16/18
For
#include <stdio.h>

int main(int argc, char **argv) {


int i;
printf("{");
for (i = 1; i < 256; i *= 2) {
printf("%d ", i);
}
printf("}\n");
return 0;
}

{1 2 4 8 16 32 64 128 }

17/18
For
#include <stdio.h>

int main(int argc, char **argv) {


int i;
printf("{");
for (i = 1; i < 256; i *= 2) {
printf("%d ", i);
}
printf("}\n");
return 0;
}

Sada do programa

{1 2 4 8 16 32 64 128 }

17/18
Dvidas?
18/18

S-ar putea să vă placă și