Vous êtes sur la page 1sur 42

ALGORITMOS

ESTRUTURADOS
CODIFICADOS NA
LINGUAGEM C-ANSI
Autores
Prof.: Eugnio Jlio Messala Cndido Carvalho
Prof.: Leandro Lus Galdino de Oliveira

NDICE
1.0 - ITENS FUNDAMENTAIS EM ALGORITMOS E C-ANSI ......................................................
1.1 - CONSTANTES ...............................................................................................................
1.1.1 - CONSTANTE NUMRICA .......................................................................................
1.1.2 - CONSTANTE LITERAL .......................................................................................
1.1.3 - CONSTANTE LGICA ............................................................................................
1.2 - VARIVEIS ...................................................................................................................
1.2.1 - FORMAO DOS IDENTIFICADORES ....................................................................
1.2.2 - TIPOS DE VARIVEIS ............................................................................................
1.2.3 - DECLARAO DE VARIVEIS .............................................................................
1.3 - COMENTRIOS ..........................................................................................................
1.4 - EXPRESSES ARITMTICAS .......................................................................................
1.4.1 - TABELA DE PRIORIDADES DAS OPERAES ARITMTICAS ..............................
1.5 - EXPRESSES LGICAS ................................................................................................
1.5.1 - RELAES ..........................................................................................................
1.5.2 - OPERADORES LGICOS .......................................................................................
1.5.3 - TABELA DE PRIORIDADES DAS OPERAES LGICAS ........................................
1.6 - EXPRESSES LITERAIS ................................................................................................
1.7 - COMANDO DE ATRIBUIO .......................................................................................
1.8 - COMANDOS DE ENTRADA E SADA .............................................................................
1.8.1 - COMANDO DE ENTRADA .......................................................................................
1.8.2 - COMANDO DE SADA ............................................................................................
1.9 - ESTRUTURA SEQENCIAL ............................................................................................
1.9.1 - EXERCCIO EXEMPLO .......................................................................................
1.9.2 - EXERCCIO EXEMPLO .......................................................................................
1.10 - ESTRUTURA CONDICIONAL .......................................................................................
1.10.1 - ESTRUTURA CONDICIONAL SIMPLES ...............................................................
1.10.1.1 - EXERCCIO EXEMPLO .............................................................................
1.10.1.2 - EXERCCIO EXEMPLO .............................................................................
1.10.2 - ESTRUTURA CONDICIONAL COMPOSTA ..........................................................
1.10.2.1 - EXERCCIO EXEMPLO .............................................................................
1.10.2.2 - EXERCCIO EXEMPLO .............................................................................

01
01
01
01
01
02
02
02
03
03
04
05
05
05
06
06
07
08
09
09
10
11
12
13
14
14
15
16
17
18
19

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. I

1.10.3 - ESTRUTURAS CONDICIONAIS ANINHADAS ......................................................


1.10.3.1 - EXERCCIO EXEMPLO .............................................................................
1.10.3.2 - EXERCCIO EXEMPLO .............................................................................
1.11 - ESTRUTURAS DE REPETIO ..................................................................................
1.11.1 - ESTRUTURA DE REPETIO 1 FORMA - INTERRUPO NO INCIO ................
1.11.1.1 - EXERCCIO EXEMPLO .............................................................................
1.11.2 - ESTRUTURA DE REPETIO 2 FORMA - INTERRUPO NO INTERIOR ...........
1.11.2.1 - EXERCCIO EXEMPLO .............................................................................
1.11.3 - ESTRUTURA DE REPETIO 3 FORMA - INTERRUPO NO FIM .....................
1.11.3.1 - EXERCCIO EXEMPLO .............................................................................
1.11.4 - ESTRUTURAS DE REPETIO ANINHADAS E EM SEQNCIA .........................
1.11.4.1 - EXERCCIO EXEMPLO .............................................................................
1.11.4.2 - EXERCCIO EXEMPLO .............................................................................
2.0 - ESTRUTURAS DE DADOS EM ALGORITMO E C-ANSI ......................................................
2.1 - VARIVEIS COMPOSTAS HOMOGNEAS ....................................................................
2.1.1 - VARIVEL COMPOSTA HOMOGNEA UNIDIMENSIONAL (VETOR) .....................
2.1.1.1 - EXERCCIO EXEMPLO ..................................................................................
2.1.2 - VARIVEL COMPOSTA HOMOGNEA BIDIMENSIONAL (MATRIZ) .....................
2.1.2.1 - EXERCCIO EXEMPLO ..................................................................................
BIBLIOGRAFIA ........................................................................................................................

20
20
21
22
22
24
26
28
29
30
31
31
32
34
34
34
36
37
38
39

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. II

1.0 - Itens Fundamentais em Algoritmos e C-ANSI


1.1 - Constantes
Uma constante um valor fixo que no pode ser modificado ao longo do tempo, durante a
execuo do programa o valor no pode ser alterado.

1.1.1 - Constante Numrica


Algoritmo

C ANSI

Todos os nmeros so representados no


sistema decimal com ou sem parte fracionria.

Todos os nmeros representados em qualquer


sistema numrico com ou sem parte fracionria.

ex.: 25; 35; 45;

ex.: 25; 35; 45;

25,34; 35,48; 45,4567.

25.34; 35.48; 45.4567.

1.1.2 - Constante Literal


Algoritmo

C ANSI

Qualquer seqncia de caracteres (letras,


Qualquer seqncia de caracteres (letras,
dgitos ou smbolos especiais), representada no
dgitos ou smbolos especiais), representada no
algoritmo entre aspas duplas so constantes literais. programa entre aspas duplas so constantes literais.
ex.: "Este e um teste"

ex.: Este e um teste

"17398"

17398

"Maria 2345 *$%&*()@!"

Maria 2345 *$%&*()@!

1.1.3 - Constante Lgica


Algoritmo
um valor lgico podendo ser somente falso
ou verdadeiro, representado por falso e verdadeiro

C ANSI
No existe constante lgica em C ANSI

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 1

1.2 - Variveis
Uma varivel corresponde a uma posio de memria, cujo contedo pode variar ao longo do
tempo, durante a execuo de um programa. Embora uma varivel possa assumir diferentes valores, ela
s pode armazenar um valor a cada instante. Toda varivel identificada por um identificador.
1.2.1 - Formao dos identificadores
Algoritmo

C ANSI

Um identificador formado por um ou mais


caracteres, sendo que o primeiro caracter deve,
obrigatoriamente, ser uma letra e os caracteres
seguintes, letras ou dgitos, no sendo permitido o
uso de smbolos especiais e de palavras reservadas.
No h distino entre letras maisculas e
minsculas.

Um identificador e formado por um ou mais


caracteres, sendo que o primeiro caracter deve,
obrigatoriamente, ser uma letra ou um
sublinhado(_) e os caracteres seguintes, letras,
dgitos ou sublinhados(_), no sendo permitido o
uso de smbolos especiais e de palavras reservadas.
H distino entre letras maisculas e minsculas.
Somente os primeiros 31 caracteres so
significativos.

ex.: maria

ex.: _casa23

teste23

Maria

contador1

a23bcde

a23bad

ab_23_45ad

1.2.2 - Tipos de Variveis


a definio do conjunto de valores que uma determinada varivel pode armazenar.
Algoritmo
tipo:

numrico

[- ... +]

C ANSI
tipo:

int

[-32.767

... 32.767]

float

[3.4e-38

... 3.4e+38]

double [1.7e-308 ... 1.7e+308]


tipo:

literal

[letras, dgitos,
smbolos especiais]

tipo:

char

[letras, dgitos e smbolos


especiais]

tipo:

lgico

[verdadeiro ou falso]

tipo:

lgico

[no existe]

tipo:

sem valor

[no existe]

tipo:

void

[sem valor]

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 2

1.2.3 - Declarao de Variveis


As variveis somente armazenam valores contidos no intervalo do seu tipo (Ver 1.2.2). Uma vez
declarada a varivel qualquer referncia que se faa ao seu identificador implica referenciar ao contedo
armazenado na posio de memria representado pelo mesmo.

Algoritmo

C ANSI

declare lista de identificadores nome do


tipo

tipo lista de identificadores;


onde:

onde:
declare: palavra reservada do algoritmo

tipo: um dos tipos bsicos (int, float, double,


char ou void)

lista de identificadores: identificadores


escolhidos para as variveis, devem ser
separados por vrgula.

lista de identificadores: identificadores


escolhidos para as variveis, devem ser
separados por virgula.

nome do tipo: um dos tipos bsicos(


numrico, lgico e Literal
ex.: declare nota, cdigo, CPF numrico

ex.: float

declare teste, sim, aprovado lgico

int

declare nome, end1 literal

double
char

nota;
codigo;
CPF;
nome[31], end1[51];

1.3 - Comentrios
E um texto, ou simplesmente uma frase, que descreve algo com maior clareza dentro de um
algoritmo ou programa.

Algoritmo

C ANSI

O comentrio aparece sempre delimitado por


chaves { }.
/*
ex.: declare nota numrico {nota do aluno}
declare apto lgico
declare nome literal

{teste de aptido}

O comentrio aparece sempre delimitado por


*/

ex.: float
char

nota;
nome[31];

/* nota do aluno */
/* nome do aluno */

{nome do aluno}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 3

1.4 - Expresses aritmticas


Denomina-se expresses aritmticas aquelas cujos operadores so aritmticos e cujos operandos so
constantes e/ou variveis do tipo numrico. O conjunto de operaes bsicas adotado o que se conhece
na matemtica.
Adio

Subtrao

Multiplicao

Diviso

Potenciao

Radiciao

Algoritmo

C ANSI

Adio

Adio

Subtrao

Subtrao

Multiplicao

Multiplicao

Diviso

Diviso

Radiciao

Radiciao

sqrt(valor)

Potenciao

ny

Potenciao

pow(n,y)

Resto div.

resto(div., divisor)

Resto da diviso

div. % divisor

Quoc div.

quociente(div. ,divisor)

Quociente

div. / divisor

Incremento

no existe

Incremento

++

Decremento

no existe

Decremento

--

ex.:

ex.:
x+y
xy
x*y
x/y
81
xy
resto(x, y)
quociente(x, y)

x+y
xy
x*y
x/y
sqrt(81)
pow(x, y)
x%y
x/y
x++
y--

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 4

1.4.1 - Tabela de prioridades das operaes aritmticas.

Precedncia

Algoritmo

C ANSI

1 resto(x,y), quociente(x,y)

1 pow(x,y), sqrt(x)

2 ()

2 ()

3 , ny

3 ++, --

4 *, /

4 *, /, %

5 +, -

5 +, -

1.5 - Expresses Lgicas


Denomina-se expresso lgica a expresso cujos operadores so lgicos e cujos operandos so
relaes, constantes e/ou variveis do tipo lgico.
1.5.1 - Relaes
igual a

menor que

diferente de

maior ou igual a

maior que

menor ou igual a

Algoritmo

C ANSI

Igual a

Igual a

==

Diferente de

Diferente de

!=

Maior que

>

Maior que

>

Menor que

<

Menor que

<

Maior ou igual que

Maior ou igual que

>=

Menor ou igual que

Menor ou igual que

<=

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 5

1.5.2 - Operadores lgicos


Conjuno

Disjuno

Negao

Algoritmo

C ANSI

Conjuno

Conjuno

&&

Disjuno

ou

Disjuno

||

Negao

no

Negao

1.5.3 - Tabela de prioridades das operaes lgicas.

Precedncia

Algoritmo

C ANSI

=, , <, >, ,

no

<, >, >=, >=

==, !=

ou

&&

||

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 6

1.6 - Expresses Literais


Uma expresso literal aquela formada por operadores literais e operandos que so constantes e/ou
variveis do tipo literal.
Algoritmo
Operador de concatenao

C ANSI
|

Funo de concatenao strcat(a, b)

ex.: a contm

"bola"

ex.: a contm

"bola"

b contm

"preta"

b contm

"preta"

a | b = "bolapreta"
Operador de comparao
ex:

a contm

"bola"

b contm

"preta"

a=b

Funo de comparao
ex:

a contm

"bola"

a contm

"bola"

b contm

"preta"

strcmp(a, b)

strcmp(a,b) resposta igual a um valor 0

resposta ser falsa

Operador de atribuio
ex:

strcat(a,b) retorna a = "bolapreta"

Operador de atribuio
ex:

a contm

strcpy(a, b)

"bola"

b a

strcpy(b, a)

resposta ser b = bola

resposta ser b = bola

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 7

1.7 - Comando de atribuio


O comando de atribuio permite que se atribua um valor a uma certa varivel.

Algoritmo
A natureza do valor a ser atribudo, tem
que ser compatvel com o tipo da varivel na
qual esta sendo armazenada.
Identificador
ex.: nota

codigo

Expresso

10
66 * 4 + 2

C ANSI
A natureza do valor a ser atribudo, no
necessariamente tem que ser compatvel com o
tipo da varivel na qual esta sendo armazenada.
Identificador
ex.: nota

Expresso;

= 10;

codigo = 66 * 4 + 2;

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 8

1.8 - Comandos de entrada e sada


So os comandos pelos quais entra-se e retira-se dados do programa ou do algoritmo.
1.8.1 - Comando de entrada

Algoritmo
leia lista de identificadores
ex.: leia nota

C ANSI
int scanf (cdigo de formatao, &lista de
identificadores)
ex.: scanf(%d, &nota);

leia codigo

scanf(%d, &codigo);

leia nome

scanf(%s, &nome);

Cdigo de formatao

Formato

%c

Um nico caracter (char)

%d

Um nmero decimal (int)

%i

Um nmero inteiro

%e

Um ponto flutuante

%f

Um ponto flutuante

%g

Um ponto flutuante

%h

Inteiro curto

%o

Nmero octal

%s

String

%x

Nmero hexadecimal

%p

Ponteiro

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 9

1.8.2 - Comando de Sada

Algoritmo

C ANSI

escreva lista de identificadores e/ou


constantes

int printf (cdigo de formatao/const, lista


de identificadores)

ex.: escreva nota : , nota, codigo : , codigo

ex.: printf(nota: %d codigo: %d, nota, codigo);

escreva nome

printf(%s, nome);

Cdigo de formatao

Formato

%c

Um caracter (char)

%d

Um nmero inteiro decimal (int)

%i

O mesmo que %d

%e

Nmero em notao cientfica com o "e"minsculo

%E

Nmero em notao cientfica com o "e"maisculo

%f

Ponto flutuante decimal

%g

Escolhe automaticamente o melhor entre %f e %e

%G

Escolhe automaticamente o melhor entre %f e %E

%o

Nmero octal

%s

String

%u

Decimal "unsigned" (sem sinal)

%x

Hexadecimal com letras minsculas

%X

Hexadecimal com letras maisculas

%%

Imprime um %

%p

Ponteiro

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 10

1.9 - Estrutura seqencial


Descreve a ordem em que os comandos sero executados pelo algoritmo ou programa.

Algoritmo
algoritmo

C ANSI
#include<biblioteca>

declarao de variveis

void main(void)

comandos

{
declarao de variveis;

fim algoritmo

comandos;
}
ex.: algoritmo

ex.: #include<stdio.h>

declare a, b ,c numrico

#include<conio.h>

leia a, b

void main(void)

c (a + b) * b

{
int a, b, c;

escreva a, b, c

printf(digite o valor de a);

fim algoritmo

scanf(%d,&a);
printf(digite o valor de b);
scanf(%d,&b);
c = (a + b) * b;
printf(a = %d, b = %d, c = %d, a, b, c);
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 11

1.9.1 - Exerccio Exemplo:


Fazer um algoritmo que: dado o raio e a altura de um cilindro calcular e escrever a rea e o volume
deste cilindro.
Algoritmo
algoritmo
declare ar, {rea do cilindro }
vol, {volume do cilindro}
r,
{raio do cilindro}
h
{altura do cilindro}
numerico
escreva digite a altura do cilindro:
leia h
escreva digite o raio do cilindro:
leia r
ar
2 * 3,1415 * r * (h + r)
vol 3,1415 * r2 * h
escreva a rea do cilindro : ,ar
escreva o volume do cilindro : ,vol
fim algoritmo

C ANSI
#include<conio.h>
#include<stdio.h>
void main(void)
{
float ar,
/* area do cilindro
*/
vol,
/* volume do cilindro */
r,
/* raio do cilindro
*/
h;
/* altura do cilindro
*/
clrscr(); /* funcao que limpa a tela do micro */
printf("digite a altura do cilindro: ");
scanf("%f",&h);
printf("digite o raio do cilindro: ");
scanf("%f",&r);
ar = 2 * 3.1415 * r * (r + h);
vol = 3.1415 * r * r * h;
printf("\na area do cilindro e: %.2f",ar);
printf("\no volume do cilindro e: %.4f",vol);
}
obs.:
\n salta uma linha
.n formatao da preciso

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 12

1.9.2 - Exerccio Exemplo:


Fazer um algoritmo que: dada a distncia entre duas cidades em centmetros. Calcular e escrever
quantos km, m, e cm corresponde a distncia entre as duas cidades.

Algoritmo
algoritmo
declare s,

{distancia entre as cidades}


km, {distancia em km}
m, {distancia em m}
cm {distancia em cm}
numerico
escreva digite a distancia em cm :
leia s
m
quociente(s,100)
cm resto(s,100)
km quociente(m,1000)
m
resto(m,100)
escreva a distancia em km, m, cm : ,km, m,
cm
fim algoritmo

C ANSI
#include<conio.h>
#include<stdio.h>
void main(void)
{
long int s, /* distancia entr as cidades*/
km, /* distancia em km */
m, /* distancia em m */
cm; /* distancia em cm */
clrscr(); /* funcao que limpa a tela do micro */
printf("digite a distancia em cm: ");
scanf("%ld",&s);
m = s/100;
cm = s % 100;
km = m/1000;
m = m%1000;
printf("\na distancia em km, m, cm e: %ld, %ld,
%ld",km, m, cm);
}
Obs.: long um tipo de modificador de varivel em
C. Pesquisar os outros tipos de modificadores.

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 13

1.10 - Estrutura Condicional


A estrutura condicional permite a escolha do grupo de aes e estruturas a serem executadas quando
determinadas condies, representadas por expresses lgicas, so ou no satisfeitas.
1.10.1 - Estrutura condicional simples
Algoritmo
se condio
ento seqncia de comandos

C ANSI
if ( condio )
{
seqncia de comandos;

fim se
}
ex.:
algoritmo
declare a, b numrico
leia a, b
se a > b
ento escreva "o maior :", a
fim se
se b > a
ento escreva "o maior :", b
fim se
se b = a
ento escreva "o dois so iguais a: ", a
fim se
fim algoritmo

ex.:
#include<conio.h>
#include<stdio.h>
void main(void)
{
int a, b;
printf(digite o valor de a);
scanf(%d,&a);
printf(digite o valor de b);
scanf(%d,&b);
if (a > b)
{
printf(\n o maior : %d, a);
}
if (b > a)
{
printf(\n o maior : %d, b);
}
if (a = = b)
{
printf(\n os dois so iguais a: %d, a);
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 14

1.10.1.1 - Exerccio Exemplo:


Fazer um algoritmo que: dado um nmero inteiro qualquer verificar e escrever se este nmero par
ou mpar.
Algoritmo
algoritmo
declare a numrico
leia a
se resto(a,2) = 0
ento escreva a," par"
fim se
se resto(a,2) 0
ento escreva a," mpar"
fim se
fim algoritmo

C ANSI
#include<conio.h>
#include<stdio.h>
void main(void)
{
int a;
printf(digite o valor de a : );
scanf(%d,&a);
if ((a%2) = = 0)
{
printf(\n %d par", a);
}
if ((a%2) != 0)
{
printf(\n %d mpar", a);
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 15

1.10.1.2 - Exerccio Exemplo:


Fazer um algoritmo que: dado um nmero verificar e escrever se este nmero um quadrado
perfeito.

Algoritmo
algoritmo
declare num, intquadnum, quadnum,
dif numrico
leia num
quadnum num
intquadnum trunca(quadnum)
dif quadnum - intquadnum
se dif = 0
ento escreva num," quadrado
perfeito"
fim se
se dif 0
ento escreva num," no quadrado
perfeito"
fim se
fim algoritmo

C ANSI
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main(void)
{
int num, int_quad_num;
float quad_num, dif;
printf("digite o valor de a : ");
scanf("%d",&num);
quad_num = sqrt(num);
int_quad_num = quad_num;
dif = quad_num - int_quad_num;
if (dif == 0)
{
printf("\n %d e quadrado perfeito",
num);
}
if (dif != 0)
{
printf("\n %d nao e quadrado perfeito",
num);
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 16

1.10.2 - Estrutura condicional composta

Algoritmo
se condio
ento

seqncia 1 de comandos

seno

seqncia 2 de comandos

fim se

C ANSI
if ( condio )
{
seqncia 1 de comandos;
}
else
{
seqncia 2 de comandos;
}

ex.:
algoritmo
declare a, b, x ,y numrico
leia a, b
se a = b
ento x 1,5
y 2,5
seno x -1,5
y -2,5
fim se
fim algoritmo

ex.:
#include<conio.h>
#include<stdio.h>
void main(void)
{
float a, b, x, y;
printf(digite o valor de a : );
scanf(%f,&a);
printf(digite o valor de b : );
scanf(%f,&b);
if (a = = b)
{
x = 1.5;
y = 2.5;
}
else
{
x = -1.5;
y = -2.5;
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 17

1.10.2.1 - Exerccio Exemplo:


Fazer um algoritmo que: dado um nmero inteiro qualquer verificar e escrever se este nmero par
ou mpar.

Algoritmo
algoritmo
declare a numrico
leia a
se resto(a,2) = 0
ento escreva a," par"
seno escreva a," impar"
fim se
fim algoritmo

C ANSI
#include<conio.h>
#include<stdio.h>
void main(void)
{
int a;
printf(digite o valor de a : );
scanf(%d,&a);
if ((a%2) = = 0)
{
printf(\n %d par", a);
}
else
{
printf(\n %d mpar", a);
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 18

1.10.2.2 - Exerccio Exemplo:


Fazer um algoritmo que: dado um nmero inteiro qualquer verificar e escrever se este nmero um
numero quadrado perfeito.

Algoritmo
algoritmo
declare num, intquadnum, quadnum,
dif numrico
leia num
quadnum num
intquadnum trunca(quadnum)
dif quadnum - intquadnum
se dif = 0
ento escreva num," quadrado
perfeito"
seno escreva num," no quadrado
perfeito"
fim se
fim algoritmo

C ANSI
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main(void)
{
int num, int_quad_num;
float quad_num, dif;
printf("digite o valor de a : ");
scanf("%d",&num);
quad_num = sqrt(num);
int_quad_num = quad_num;
dif = quad_num - int_quad_num;
if (dif == 0)
{
printf("\n %d e quadrado perfeito",
num);
}
else
{
printf("\n %d nao e quadrado perfeito",
num);
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 19

1.10.3 - Estruturas condicionais aninhadas.


1.10.3.1 - Exerccio Exemplo:
Fazer um algoritmo que: dado trs nmeros inteiros, determinar e imprimir o menor deles.

Algoritmo
algoritmo
declare a, b, c, menor numrico
leia a, b, c
se (a < b) e (a < c)
ento menor a
seno se (b < c)
ento menor b
seno menor c
fim se
fim se
escreva "o menor valor e :", menor
fim algoritmo

C ANSI
#include<conio.h>
#include<stdio.h>
void main(void)
{
int a, b ,c , menor;
printf(digite o valor de a : );
scanf(%d,&a);
printf(digite o valor de b : );
scanf(%d,&b);
printf(digite o valor de c : );
scanf(%d,&c);
if ((a < b) && (a < c))
{
menor = a;
}
else
{
if (b < c)
{
menor = b;
}
else
{
menor = c;
}
}
printf("O menor valor e : %d", menor);
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 20

1.10.3.2 - Exerccio Exemplo:


Fazer um algoritmo que: dado trs nmeros inteiros, verificar se eles podem formar um tringulo;
formando um tringulo verificar e escrever qual o tipo de tringulo formado (equiltero, issceles ou
escaleno).

Algoritmo
algoritmo
declare x, y, z numrico
leia x, y, z
se (x < y + z) e (y < x + z) e (z < x + y)
ento
se (x = y) e (x = z)
ento escreva "tringulo
equiltero"
seno
se (x = y) ou (x = z) ou (y = z)
ento escreva "tringulo
issceles"
seno escreva "tringulo
escaleno"
fim se
fim se
seno escreva "no existe tringulo"
fim se
fim algoritmo

C ANSI
#include<stdio.h>
#include<conio.h>
#include<math.h>
void main(void)
{
int x, y, z;
printf("digite o valor de x : ");
scanf("%d",&x);
printf("digite o valor de y : ");
scanf("%d",&y);
printf("digite o valor de z : ");
scanf("%d",&z);
if ((x < y + z) && (y < x + z) && (z < x + y))
{
if ((x == y) && (x == z))
{
printf("\n triangulo equilatero");
}
else
{
if ((x == y) || (x == z) || (y == z))
{
printf("\n triangulo isoceles");
}
else
{
printf("\n triangulo escaleno");
}
}
}
else
{
printf("\n nao existe triangulo");
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 21

1.11 - Estruturas de Repetio


A estrutura de repetio permite que uma seqncia de comandos seja executada repetidamente ate
que uma determinada condio de interrupo seja satisfeita.
1.11.1 - Estrutura de repetio 1 forma - interrupo no incio.

Algoritmo

C ANSI
1 opo de implementao

repita
se condio
ento interrompa

for(inicializao ; condio ; incremento)


{
seqncia de comandos;

fim se
seqncia de comandos
fim repita

}
2 opo de implementao
while (condio)
{
seqncia de comandos;
}

ex.:
algoritmo
declare i numrico
i 1
repita
se i > 100
entao interrompa
fim se
escreva o numero e: ,i
ii+1
fim repita
fim algoritmo

ex.: 1 opo de implementao


#include<conio.h>
#include<stdio.h>
void main(void)
{
int i;
clrscr();
for(i = 1;i <= 100; i++)
{
printf(\n O numero e: %d,i);
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 22

Algoritmo
ex.:
algoritmo
declare i numrico
i 1
repita
se i > 100
entao interrompa
fim se
escreva o numero e: ,i
ii+1
fim repita
fim algoritmo

C ANSI
2 opo de implementao
#include<conio.h>
#include<stdio.h>
void main(void)
{
int i = 1;
clrscr();
while(i<=100)
{
printf(\n O numero e: %d,i);
i++;
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 23

1.11.1.1 - Exerccio Exemplo:


Fazer um algoritmo que: leia um conjunto de cinqenta nmeros inteiros e determine e escreva para
cada numero lido se este par ou mpar.
Algoritmo
algoritmo
declare num, cont numrico
cont 0
repita
se cont 50
entao interrompa
fim se
leia num
se (resto(mun,2) = 0)
entao escreva num,e par
senao escreva num,e impar
fim se
cont cont + 1
fim repita
fim algoritmo

C ANSI
1 opo de implementao
#include<conio.h>
#include<stdio.h>
void main(void)
{
int num, cont;
for (cont = 0;cont< 50; cont++)
{
printf(digite o valor: );
scanf(%d,&num);
if ((num%2) = = 0)
{
printf(\n %d par", num);
}
else
{
printf(\n %d mpar", num);
}
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 24

Algoritmo
algoritmo
declare num, cont numrico
cont 0
repita
se cont 50
entao interrompa
fim se
leia num
se (resto(mun,2) = 0)
entao escreva num, PAR
senao escreva num, IMPAR
fim se
cont cont + 1
fim repita
fim algoritmo

C ANSI
2 opo de implementao
#include<conio.h>
#include<stdio.h>
void main(void)
{
int num, cont = 0;
while (cont < 50)
{
printf(digite o valor: );
scanf(%d, &num);
if ((num%2) = = 0)
{
printf(\n %d par", num);
}
else
{
printf(\n %d mpar", num);
}
cont++;
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 25

1.11.2 - Estrutura de repetio 2 forma - interrupo no interior.

Algoritmo

C ANSI

repita

1 opo de implementao

seqncia de comandos 1

seqncia de comandos 1;

se condio

while (condio)
{

ento interrompa
fim se

seqncia de comandos 2;

seqncia de comandos 2

seqncia de comandos 1;
}

fim repita

ex.:

ex.: 1 opo de implementao

algoritmo

#include<stdio.h>

declare nome, {primeiro nome da pessoa}

#include<conio.h>

sobrenome,{sobrenome da
pessoa}

#include<string.h>
void main(void)

nomec {nome completo da


pessoa}

{
char nome[11], /* primeiro nome da pessoa */

literal

sobrenome[11], /* sobrenome da pessoa */

repita

nomec[22]; /* nome completo da pessoa*/

leia nome
se nome = fim
entao interrompa

clrscr();

fim se

printf("Primeiro nome: ");

leia sobrenome

scanf("%s",&nome);

nomec

nomec | nome

while (strcmp(nome,"fim") != 0)
{

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 26

nomec

nomec |

printf("Sobrenome: ");

nomec

nomec | sobrenome

scanf("%s",&sobrenome);

escreva o nome completo da pessoa e


:, nomec
fim repita

/*nomec[0]='\0'; inicializacao da variavel


nomec */
strcpy(nomec,"");/*inicializacao da variavel
nomec */

fim algoritmo
strcat(nomec,nome);
strcat(nomec," ");
strcat(nomec,sobrenome);
printf("nome completo: %s",nomec);
printf("Primeiro nome: ");
scanf("%s",&nome);
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 27

1.11.2.1 - Exerccio Exemplo:


Fazer um algoritmo que: leia um numero indeterminado de linhas contendo cada uma a altura de um
indivduo. A ltima linha, que no entrar nos clculos, contm o valor da altura igual a 0.Calcule e
escreva a altura mdia deste grupo.

Algoritmo
algoritmo
declare altura, {altura da pessoa}
media,{media das alturas}
contpes {contador de pessoas}
somaalt {somatrio das alturas }
numerico
repita
leia altura
se altura = 0
entao interrompa
fim se
contpes contpes + 1
somaalt somaalt + altura
fim repita
media somaalt / contpes
escreva a media das alturas e: ,media
fim algoritmo

C ANSI
#include<conio.h>
#include<stdio.h>
void main(void)
{
float altura,/*altura da pessoa*/
media,/*media das alturas*/
somaalt = 0;/*somatrio das alturas*/
int contpes = 0; /*contador de pessoas*/
printf("Altura:");
scanf("%f",&altura);
while (altura != 0)
{
contpes++;
somaalt = somaalt + altura;
printf("Altura:");
scanf("%f",&altura);
}
media = somaalt / contpes;
printf("A media das alturas e: %f",media);
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 28

1.11.3 - Estrutura de repetio 3 forma - interrupo no fim.

Algoritmo

C ANSI

repita

1 opo de implementao

seqncia de comandos

do

se condio

{
seqncia de comandos ;

ento interrompa

} while (condio);

fim se
fim repita

ex.:

ex.: 1 opo de implementao


algoritmo

#include<conio.h>

declare i numrico

#include<stdio.h>

i 1

void main(void)
{

repita
escreva o numero e: ,i

int i = 0;

ii+1

clrscr();

se i 100

do
{

ento interrompa

printf(\n O numero e: %d,i);

fim se

i++;

fim repita

}while (i <= 100);

fim algoritmo
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 29

1.11.3.1 - Exerccio Exemplo:


Fazer um algoritmo que: leia 100 nmeros inteiros, calcule o somatrio de todos os nmeros pares
digitados.

Algoritmo
Algoritmo
declare num,
{numero digitado}
somapar,{somatrio dos pares}
contnum {contador de numeros}
numerico
somapar 0
cont 0
repita
leia num
se (resto(num,2) = 0)
ento somapar somapar + num
fim se
contnum contmun + 1
se contmun = 100
ento interrompa
fim se
fim repita
escreva o somatrio e : ", somapar
fim algoritmo

C ANSI
#include<conio.h>
#include<stdio.h>
void main(void)
{
int num,
/* numero digitado */
somapar = 0, /* somatorio dos numeros */
contnum = 0; /* contador de numeros */
do
{
printf("numero: ");
scanf("%d", &num);
if ((num%2)==0)
{
somapar = somapar + num;
}
contnum++;
}while(contnum < 10);
printf("o somatorio e : %d", somapar);
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 30

1.11.4 - Estruturas de repetio aninhadas e em seqncia.


1.11.4.1 - Exerccio Exemplo:
Fazer um algoritmo que: leia um numero indeterminado de linhas contendo cada uma um numero
inteiro positivo qualquer. A ltima linha que no entrar nos clculos dever conter um valor igual a 0.
Para cada um destes nmeros calcular o seu fatorial.
Algoritmo
algoritmo
declare num,{numero inteiro lido}
fat,{valor do fatorial do numero}
cont{variavel auxiliar contador}
numrico
repita
leia num
se num = 0
ento interrompa
fim se
cont 1
fat 1
repita
se cont > num
ento interrompa
fim se
fat fat * cont
cont cont + 1
fim repita
escreva "o fatorial de ",num," = ", fat
fim repita
fim algoritmo

C ANSI
#include<conio.h>
#include<stdio.h>
void main(void)
{
int num, /* altura da pessoa */
fat, /* media das alturas */
cont; /* variavel auxiliar contador */
clrscr();
printf("\nnumero: ");
scanf("%d", &num);
while (num != 0)
{
fat = 1;
for(cont=1;cont <=num;cont++)
{
fat = fat * cont;
}
printf("\no fatorial de %d = %d",num,fat);
printf("\nnumero:");
scanf("%d", &num);
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 31

1.11.4.2 - Exerccio Exemplo:


Fazer um algoritmo que: leia um nmero indeterminado de linhas contendo cada uma um nmero
inteiro positivo qualquer. A ltima linha que no entrar nos clculos dever conter um valor igual a 0.
Para cada um destes nmeros calcular o seu fatorial e se o nmero um numero perfeito.
Algoritmo

C ANSI

algoritmo
#include<conio.h>
#include<stdio.h>
declare num,{numero inteiro lido}
fat,{valor do fatorial do numero}
cont,{varivel auxiliar contador} void main(void)
{
somat,{somatrio dos divisores}
int num,/*numero inteiro lido*/
numrico
fat,/*valor do fatorial do numero*/
repita
cont,/*variavel auxiliar */
leia num
somat;/*somatorio dos divisores*/
se num = 0
clrscr();
ento interrompa
printf("\nnumero:");
fim se
scanf("%d",&num);
while (num != 0)
{
cont 1
fat = 1;
fat 1
for(cont=1;cont <=num;cont++)
repita
{
se cont > num
fat = fat * cont;
ento interrompa
}
fim se
printf("\no
fatorial de %d = %d",num,fat);
fat fat * cont
cont= 1;
cont cont + 1
somat = 0;
fim repita
do
escreva "o fatorial de ",num," = ", fat
{
if ((num%cont)==0)
{
cont 1
somat= somat + cont;
somat 0
}
repita
cont++;
se (resto(num,cont) = 0)
}while(cont<num);
ento somat somat + cont
if (somat == num)
fim se
{
cont cont + 1
printf("\no %d e perfeito",num);
se cont >= num
}
ento interrompa
else
fim se
{
fim repita
printf("\no %d nao e perfeito",num);
}
printf("\nnumero:");
______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 32

se (somat = num)
ento escreva "o ",num," e
perfeito "
seno escreva "o ",num," no e
perfeito "
fim se
fim repita
fim algoritmo

scanf("%d",&num);
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 33

2.0 - Estruturas de Dados em Algoritmo e C-ANSI


2.1 - Variveis compostas homogneas
Variveis compostas homogneas correspondem a posies de memria, identificadas por um
mesmo identificador, individualizadas por um ndice e cujo contedo do mesmo tipo.

2.1.1 - Varivel composta homognea unidimensional (Vetor)


Algoritmo

C ANSI

declare lista de identificadores [li : ls] nome


do tipo

tipo identificador[t];

onde:

onde :

declare : palavra reservada do algoritmo

tipo : um dos tipos bsicos (int, float, double,


char, void)

lista de identificadores : identificadores


escolhidos para as variveis, devem ser
separadas por virgulas.

identificador : identificador da varivel


t : capacidade de armazenamento da varivel

li : limite inferior do intervalo do ndice


ls : limite superior do intervalo do ndice
nome do tipo : um dos tipos bsicos
(numrico, lgico e literal)
ex:

ex:
declare nota[1 : 10] numrico

int nota[10];

declare altura, peso[1: 30] numrico

float altura[30], peso[30];

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 34

Algoritmo
A referncia ao contedo do n-simo
elemento do conjunto feita atravs da seguinte
notao:

C ANSI
A referncia ao contedo do n-simo
elemento do conjunto e feita atravs da seguinte
notao:

identificador[pos]
onde:

identificador[pos]
onde:

identificador quem identifica a varivel

identificador quem identifica a varivel

pos : posio do elemento dentro da varivel

pos : posio do elemento dentro da varivel

ex:

ex:
escreva "a nota do aluno e: ", nota[3]

printf("a nota do aluno e: %d", nota[3]);

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 35

2.1.1.1 - Exerccio Exemplo:


Fazer um algoritmo que: leia um conjunto de 10 notas, calcule e escreva a mdia das notas, calcule
e escreva quantas notas esto abaixo da mdia.
Algoritmo
algoritmo
declare notas[1 : 10],{vetor de notas}
numrico
declare media { media das notas}
cont,{varivel auxiliar contador}
contalunos,{varivel auxiliar
contador de alunos}
soma,{somatrio das notas}
numrico
cont 0
soma 0
repita
se cont 10
ento interrompa
fim se
leia notas[cont]
soma soma + notas[cont]
cont cont + 1
fim repita
media soma/10
cont 0
contalunos 0
repita
se cont 10
ento interrompa
fim se
se notas[cont] < media
ento contalunos contalunos +1
fim se
cont cont + 1
fim repita
escreva contalunos, obtiveram nota menor
que, media
fim algoritmo

C ANSI
#include<conio.h>
#include<stdio.h>
void main(void)
{
float notas[10], /*vetor de notas*/
media,/*media das notas*/
soma;/*somatorio das notas*/
int cont, /*variavel auxiliar contador */
contalunos = 0; /*variavel auxiliar
contador de alunos}*/
clrscr();
for(cont=0;cont < 10; cont++)
{
printf("\nDigite a nota do %d aluno ",
cont + 1);
scanf("%f", &notas[cont]);
soma = soma + notas[cont];
}
media = soma/10.0;
for(cont=0;cont < 10; cont++)
{
if (notas[cont] < media)
contalunos++;
}
printf("%d obtiveram nota menor que a
media = %5.2f",contalunos,media);
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 36

2.1.2 - Varivel composta homognea bidimensional (Matriz)


Algoritmo
declare lista de identificadores [li : ls, li : ls]
nome do tipo

C ANSI
tipo identificador[t][t];
onde :

onde:

tipo : um dos tipos bsicos (int, float,


double, char, void)

declare : palavra reservada do algoritmo


lista de identificadores : identificadores
escolhidos para as variveis, devem ser
separadas por vrgulas.

identificador : identificador da varivel


t : capacidade de armazenamento da varivel

li : limite inferior do intervalo do ndice


ls : limite superior do intervalo do ndice
nome do tipo : um dos tipos bsicos
(numrico, lgico e literal).
ex:

ex:
declare matriz[1 : 10, 1 : 10] numrico
declare altura, peso[1: 30, 1 : 5] numrico

A referncia ao contedo do n-simo


elemento do conjunto feita atravs da seguinte
notao:

int matriz[10][10];
float altura[30][5], peso[30][5];

A referncia ao contedo do n-simo


elemento do conjunto feita atravs da seguinte
notao:

identificador[linha, coluna]
onde:

identificador[linha][coluna]
onde:

identificador : quem identifica a varivel

identificador : quem identifica a varivel

linha : a linha que se encontra o elemento


dentro da varivel

linha : a linha que se encontra o elemento


dentro da varivel

coluna : a coluna que se encontra o elemento


dentro da varivel

coluna : a coluna que se encontra o elemento


dentro da varivel

ex:

ex:
escreva "o valor e: ",matriz[5,3]
leia altura[4,5]
peso[8,2] 68

printf("o valor e: %d", matriz[5][3]);


scanf("%d",&altura[4][5]);
peso[8][2] = 68;

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 37

2.1.2.1 - Exerccio Exemplo:


Fazer um algoritmo que: leia duas matrizes A e B de dimenso 3x3, calcule e escreva a matriz C
3x3 fruto de C = A + B.
Algoritmo
algoritmo
const tam = 2
declare MA,MB,MC[1 : 3, 1 : 3],{matrizes}
Numrico
declare l, {linha da matiz}
c {coluna da matriz}
numrico
l 0
repita
se l tam
ento interrompa
fim se
c0
repita
se c > tam
ento interrompa
fim se
leia Ma[l,c]
ll+1
fim repita
cc+1
fim repita
l 0
repita
se l tam
emto interrompa
fim se
c0
repita
se c tam
ento interrompa
fim se
leia Mb[l,c]
ll+1
fim repita
cc+1
fim repita
l 0
repita

C ANSI
#include<conio.h>
#include<stdio.h>
#define tam 2
void main(void)
{
int ma[tam][tam],
mb[tam][tam],
mc[tam][tam]; /*matrizes*/
int l, /* linha*/
c; /* coluna */
clrscr();
for(l=0;l < tam;l++)
{
for(c=0;c < tam; c++)
{
printf("\n valor : ");
scanf("%d",&ma[l][c]);
}
}
clrscr();
for(l=0;l < tam;l++)
{
for(c=0;c < tam; c++)
{
printf("\n valor : ");
scanf("%d",&mb[l][c]);
}
}
clrscr();
for(l=0;l < tam;l++)
{
for(c=0;c < tam; c++)
{
mc[l][c]=ma[l][c] + mb[l][c];
printf("\n valor: %d ",mc[l][c]);
}
}
}

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 38

se l tam
emto interrompa
fim se
c0
repita
se c tam
ento interrompa
fim se
mc[l,c] Ma[l,c] + Mb[l,c]
escreva mc[l,c]
ll+1
fim repita
cc+1
fim repita

Bibliografia
SCHILDT, Herbert. C - Completo e Total, Editora Makron Books, 3 edio.
FARRER, Harry. At all. Algoritmos Estruturados, Editora LTC, 3 Edio.

______________________________________________________________________________________________________
ALGORITMOS ESTRUTURADOS CODIFICADOS NA LINGUAGEM C-ANSI
Pg. 39

Vous aimerez peut-être aussi