42
  A L GORITMOS ESTRUTURADOS CODIFICADOS NA L INGUA GEM C- A NSI  A u t o r es Prof.: Eugênio Júli o Messala Cândid o Carvalho Prof.: Leandro Luís Galdino d e Oliveira

Apostila Algortimo e Cpadrao Versao UFG

Embed Size (px)

Citation preview

Page 1: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 1/42

ALGORITMOS

ESTRUTURADOSCODIFICADOS NALINGUAGEM C-ANSI

Autores

Prof.: Eugênio Júlio Messala Cândido Carvalho

Prof.: Leandro Luís Galdino de Oliveira

Page 2: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 2/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. I

ÍNDICE

1.0 - ITENS FUNDAMENTAIS EM ALGORITMOS E C-ANSI ...................................................... 011.1 -CONSTANTES ............................................................................................................... 01

1.1.1 -CONSTANTE NUMÉRICA ....................................................................................... 011.1.2 -CONSTANTE LITERAL ....................................................................................... 011.1.3 -CONSTANTE LÓGICA ............................................................................................ 01

1.2 -VARIÁVEIS ................................................................................................................... 021.2.1 - FORMAÇÃO DOS IDENTIFICADORES .................................................................... 021.2.2 -TIPOS DE VARIÁVEIS ............................................................................................ 021.2.3 -DECLARAÇÃO DE VARIÁVEIS ............................................................................. 03

1.3 -COMENTÁRIOS .......................................................................................................... 03

1.4 -EXPRESSÕES ARITMÉTICAS ....................................................................................... 041.4.1 -TABELA DE PRIORIDADES DAS OPERAÇÕES ARITMÉTICAS .............................. 05

1.5 -EXPRESSÕES LÓGICAS ................................................................................................ 051.5.1 -R ELAÇÕES .......................................................................................................... 051.5.2 -OPERADORES LÓGICOS ....................................................................................... 061.5.3 -TABELA DE PRIORIDADES DAS OPERAÇÕES LÓGICAS ........................................ 06

1.6 -EXPRESSÕES LITERAIS ................................................................................................ 071.7 -COMANDO DE ATRIBUIÇÃO ....................................................................................... 081.8 -COMANDOS DE ENTRADA E SAÍDA ............................................................................. 09

1.8.1 -COMANDO DE ENTRADA ....................................................................................... 09

1.8.2 -COMANDO DE SAÍDA ............................................................................................ 101.9 -ESTRUTURA SEQÜENCIAL ............................................................................................ 111.9.1 -EXERCÍCIO EXEMPLO ....................................................................................... 121.9.2 -EXERCÍCIO EXEMPLO ....................................................................................... 13

1.10 -ESTRUTURA CONDICIONAL ....................................................................................... 141.10.1 -ESTRUTURA CONDICIONAL SIMPLES ............................................................... 14

1.10.1.1 -EXERCÍCIO EXEMPLO ............................................................................. 151.10.1.2 -EXERCÍCIO EXEMPLO ............................................................................. 16

1.10.2 -ESTRUTURA CONDICIONAL COMPOSTA .......................................................... 171.10.2.1 -EXERCÍCIO EXEMPLO ............................................................................. 18

1.10.2.2 -EXERCÍCIO EXEMPLO ............................................................................. 19

Page 3: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 3/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. II

1.10.3 -ESTRUTURAS CONDICIONAIS ANINHADAS .................................................... .. 201.10.3.1 -EXERCÍCIO EXEMPLO ............................................................................. 201.10.3.2 -EXERCÍCIO EXEMPLO ............................................................................. 21

1.11 -ESTRUTURAS DE R EPETIÇÃO .................................................................................. 221.11.1 -ESTRUTURA DE REPETIÇÃO 1ª FORMA - INTERRUPÇÃO NO INÍCIO ................ 22

1.11.1.1 -EXERCÍCIO EXEMPLO ............................................................................. 241.11.2 -ESTRUTURA DE REPETIÇÃO 2ª FORMA - INTERRUPÇÃO NO INTERIOR  ........... 26

1.11.2.1 -EXERCÍCIO EXEMPLO ............................................................................. 281.11.3 -ESTRUTURA DE REPETIÇÃO 3ª FORMA - INTERRUPÇÃO NO FIM ..................... 29

1.11.3.1 -EXERCÍCIO EXEMPLO ............................................................................. 301.11.4 -ESTRUTURAS DE REPETIÇÃO ANINHADAS E EM SEQÜÊNCIA ......................... 31

1.11.4.1 -EXERCÍCIO EXEMPLO ............................................................................. 311.11.4.2 -EXERCÍCIO EXEMPLO ............................................................................. 32

2.0 -ESTRUTURAS DE DADOS EM ALGORITMO E C-ANSI ...................................................... 342.1 -VARIÁVEIS COMPOSTAS HOMOGÊNEAS .................................................................... 34

2.1.1 -VARIÁVEL COMPOSTA HOMOGÊNEA UNIDIMENSIONAL (VETOR ) ..................... 342.1.1.1 -EXERCÍCIO EXEMPLO .................................................................................. 36

2.1.2 -VARIÁVEL COMPOSTA HOMOGÊNEA BIDIMENSIONAL (MATRIZ) ..................... 372.1.2.1 -EXERCÍCIO EXEMPLO .................................................................................. 38

BIBLIOGRAFIA ........................................................................................................................ 39

Page 4: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 4/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 1

1.0 - Itens Fundamentais em Algoritmos e C-ANSI

1.1-

ConstantesUma constante é um valor fixo que não pode ser modificado ao longo do tempo, durante a

execução do programa o valor não pode ser alterado.

1.1.1 - Constante Numérica

Algoritmo C – ANSI

Todos os números são representados no

sistema decimal com ou sem parte fracionária.

Todos os números representados em qualquer 

sistema numérico com ou sem parte fracionária.ex.: 25; 35; 45;

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

ex.: 25; 35; 45;

25.34; 35.48; 45.4567.

1.1.2 - Constante Literal

Algoritmo C – ANSIQualquer seqüência de caracteres (letras,

dígitos ou símbolos especiais), representada noalgoritmo entre aspas duplas são constantes literais.

Qualquer seqüência de caracteres (letras,dígitos ou símbolos especiais), representada no

 programa entre aspas duplas são constantes literais.

ex.: "Este e um teste"

"17398"

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

ex.: “Este e um teste”

“17398”

“Maria 2345 *$%&*()@!”

1.1.3 - Constante Lógica

Algoritmo C – ANSI

É um valor lógico podendo ser somente falsoou verdadeiro, representado por falso e verdadeiro

Não existe constante lógica em C – ANSI

Page 5: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 5/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 2

1.2 - Variáveis

Uma variável corresponde a uma posição de memória, cujo conteúdo pode variar ao longo dotempo, durante a execução de um programa. Embora uma variável possa assumir diferentes valores, ela

só pode armazenar um valor a cada instante. Toda variável é identificada por um identificador.

1.2.1 - Formação dos identificadores

Algoritmo C – ANSI

Um identificador é formado por um ou maiscaracteres, sendo que o primeiro caracter deve,obrigatoriamente, ser uma letra e os caracteresseguintes, letras ou dígitos, não sendo permitido o

uso de símbolos especiais e de palavras reservadas. Não há distinção entre letras maiúsculas eminúsculas.

Um identificador e formado por um ou maiscaracteres, sendo que o primeiro caracter deve,obrigatoriamente, ser uma letra ou umsublinhado(_) e os caracteres seguintes, letras,

dígitos ou sublinhados(_), não sendo permitido ouso de símbolos especiais e de palavras reservadas.Há distinção entre letras maiúsculas e minúsculas.Somente os primeiros 31 caracteres sãosignificativos.

ex.: maria

teste23

contador1

a23bad

ex.: _casa23

Maria

a23bcde

ab_23_45ad

1.2.2 - Tipos de Variáveis

É a definição do conjunto de valores que uma determinada variável pode armazenar.

Algoritmo C – ANSI

tipo: numérico [-¥ ... +¥] tipo: int [-32.767 ... 32.767]

float [3.4e-38 ... 3.4e+38]

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

tipo: literal [letras, dígitos,símbolos especiais]

tipo: char [letras, dígitos e símbolosespeciais]

tipo: lógico [verdadeiro ou falso] tipo: lógico [não existe]

tipo: sem valor [não existe] tipo: void [sem valor]

Page 6: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 6/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 3

1.2.3 - Declaração de Variáveis

As variáveis somente armazenam valores contidos no intervalo do seu tipo (Ver 1.2.2). Uma vezdeclarada a variável qualquer referência que se faça ao seu identificador implica referenciar ao conteúdo

armazenado na posição de memória representado pelo mesmo.

Algoritmo C – ANSI

declare lista de identificadores nome dotipo

onde:

declare: palavra reservada do algoritmo

lista de identificadores: identificadoresescolhidos para as variáveis, devem ser separados por vírgula.

nome do tipo: um dos tipos básicos(numérico, lógico e Literal

tipo lista de identificadores;

onde:

tipo: um dos tipos básicos (int, float, double,char ou void)

lista de identificadores: identificadoresescolhidos para as variáveis, devem ser separados por virgula.

ex.: declare nota, código, CPF numérico

declare teste, sim, aprovado lógico

declare nome, end1 literal

ex.: float nota;

int codigo;

double CPF;

char nome[31], end1[51];

1.3 - Comentários

E um texto, ou simplesmente uma frase, que descreve algo com maior clareza dentro de umalgoritmo ou programa.

Algoritmo C – ANSI

O comentário aparece sempre delimitado por chaves { }.

O comentário aparece sempre delimitado por /* */

ex.: declare nota numérico {nota do aluno}

declare apto lógico {teste de aptidão}

declare nome literal {nome do aluno}

ex.: float nota; /* nota do aluno */

char nome[31]; /* nome do aluno */

Page 7: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 7/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 4

1.4 - Expressões aritméticas

Denomina-se expressões aritméticas aquelas cujos operadores são aritméticos e cujos operandos sãoconstantes e/ou variáveis do tipo numérico. O conjunto de operações básicas adotado é o que se conhece

na matemática.Adição Subtração

Multiplicação Divisão

Potenciação Radiciação

Algoritmo C – ANSI

Adição + Adição +

Subtração - Subtração -

Multiplicação * Multiplicação *

Divisão / Divisão /

Radiciação Ö Radiciação sqrt(valor)

Potenciação ny Potenciação pow(n,y)

Resto div. resto(div., divisor) Resto da divisão div. % divisor 

Quoc div. quociente(div. ,divisor) Quociente div. / divisor 

Incremento não existe Incremento ++

Decremento não existe Decremento --

ex.:x + yx – y

x * yx / yÖ81xy

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

ex.:x + yx – y

x * yx / ysqrt(81)

 pow(x, y)x % yx / yx++y--

Page 8: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 8/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 5

1.4.1 - Tabela de prioridades das operações aritméticas.

Precedência Algoritmo C – ANSI1 ª resto(x,y), quociente(x,y) 1 ª pow(x,y), sqrt(x)

2 ª ( ) 2 ª ( )

3 ª Ö, ny 3 ª ++, --

4 ª *, / 4 ª *, /, %

5 ª +, - 5 ª +, -

1.5 - Expressões Lógicas

Denomina-se expressão lógica a expressão cujos operadores são lógicos e cujos operandos sãorelações, constantes e/ou variáveis do tipo lógico.

1.5.1 - Relações

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 <=

Page 9: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 9/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 6

1.5.2 - Operadores lógicos

Conjunção Disjunção Negação

Algoritmo C – ANSI

Conjunção e Conjunção &&

Disjunção ou Disjunção ||

  Negação não Negação !

1.5.3 - Tabela de prioridades das operações lógicas.

Precedência Algoritmo C – ANSI

1 ª =, ¹, <, >, ³, £ 1 ª !

2 ª não 2 ª <, >, >=, >=

3 ª e 3 ª ==, !=

4 ª ou 4 ª &&

5 ª ||

Page 10: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 10/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 7

1.6 - Expressões Literais

Uma expressão literal é aquela formada por operadores literais e operandos que são constantes e/ouvariáveis do tipo literal.

Algoritmo C – ANSI

Operador de concatenação | Função de concatenação strcat(a, b)

ex.: a contém "bola"

  b contém "preta"

a | b = "bolapreta"

ex.: a contém "bola"

  b contém "preta"

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

Operador de comparação = Função de comparação strcmp(a, b)

ex: a contém "bola"

  b contém "preta"

a = b resposta será falsa

ex: a contém "bola"

  b contém "preta"

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

Operador de atribuição ¬ Operador de atribuição strcpy(a, b)

ex: a contém "bola"

 b ¬ a

resposta será b = “bola”

ex: a contém "bola"

strcpy(b, a)

resposta será b = “bola”

Page 11: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 11/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 8

1.7 - Comando de atribuição

O comando de atribuição permite que se atribua um valor a uma certa variável.

Algoritmo C – ANSI

A natureza do valor a ser atribuído, temque ser compatível com o tipo da variável naqual esta sendo armazenada.

A natureza do valor a ser atribuído, nãonecessariamente tem que ser compatível com otipo da variável na qual esta sendo armazenada.

Identificador  ¬ Expressão Identificador = Expressão;

ex.: nota ¬ 10

codigo ¬ 66 * 4 + 2

ex.: nota = 10;

codigo = 66 * 4 + 2;

Page 12: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 12/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 9

1.8 - Comandos de entrada e saída

São os comandos pelos quais entra-se e retira-se dados do programa ou do algoritmo.

1.8.1 - Comando de entrada

Algoritmo C – ANSI

leia lista de identificadores int scanf (“código de formatação”, &lista deidentificadores)

ex.: leia notaleia codigo

leia nome

ex.: scanf(“%d”, &nota);scanf(“%d”, &codigo);

scanf(“%s”, &nome);

Código de formatação Formato

%c Um único caracter (char)%d Um número decimal (int)

%i Um número inteiro

%e Um ponto flutuante

%f Um ponto flutuante

%g Um ponto flutuante

%h Inteiro curto

%o Número octal

%s String

%x Número hexadecimal

%p Ponteiro

Page 13: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 13/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 10

1.8.2 - Comando de Saída

Algoritmo C – ANSIescreva lista de identificadores e/ou

constantesint printf (“código de formatação/const”, lista

de identificadores)

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

escreva nome

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

 printf(“%s”, nome);

Código de formatação Formato

%c Um caracter (char)

%d Um número inteiro decimal (int)

%i O mesmo que %d

%e Número em notação científica com o "e"minúsculo

%E Número em notação científica com o "e"maiúsculo

%f Ponto flutuante decimal

%g Escolhe automaticamente o melhor entre %f e %e

%G Escolhe automaticamente o melhor entre %f e %E

%o Número octal

%s String

%u Decimal "unsigned" (sem sinal)

%x Hexadecimal com letras minúsculas

%X Hexadecimal com letras maiúsculas

%% Imprime um %

%p Ponteiro

Page 14: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 14/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 11

1.9 - Estrutura seqüencial

Descreve a ordem em que os comandos serão executados pelo algoritmo ou programa.

Algoritmo C – ANSI

algoritmo

declaração de variáveis

comandos

fim algoritmo

#include<biblioteca>

void main(void)

{

declaração de variáveis;

comandos;

}

ex.: algoritmo

declare a, b ,c numérico

leia a, b

c ¬ (a + b) * b

escreva a, b, c

fim algoritmo

ex.: #include<stdio.h>

#include<conio.h>

void main(void)

{

int a, b, c;

 printf(“digite o valor de a”);

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);

}

Page 15: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 15/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 12

1.9.1 - Exercício Exemplo:

Fazer um algoritmo que: dado o raio e a altura de um cilindro calcular e escrever a área e o volumedeste cilindro.

Algoritmo C – ANSI

algoritmodeclare ar, {área do cilindro }

vol, {volume do cilindro}r, {raio do cilindro}h {altura do cilindro}

numericoescreva “digite a altura do cilindro:”

leia hescreva “digite o raio do cilindro:”leia r ar  ¬ 2 * 3,1415 * r * (h + r)vol ¬ 3,1415 * r 2 * hescreva “a área do cilindro é: “,ar escreva “o volume do cilindro é: “,vol

fim algoritmo

#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 formatação da precisão

Page 16: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 16/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 13

1.9.2 - Exercício Exemplo:

Fazer um algoritmo que: dada a distância entre duas cidades em centímetros. Calcular e escrever quantos km, m, e cm corresponde a distância entre as duas cidades.

Algoritmo C – ANSI

algoritmodeclare 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 sm ¬ quociente(s,100)cm ¬ resto(s,100)km ¬ quociente(m,1000)m ¬ resto(m,100)escreva “a distancia em km, m, cm é: “,km, m,

cmfim algoritmo

#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 variável emC. Pesquisar os outros tipos de modificadores.

Page 17: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 17/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 14

1.10 - Estrutura Condicional

A estrutura condicional permite a escolha do grupo de ações e estruturas a serem executadas quandodeterminadas condições, representadas por expressões lógicas, são ou não satisfeitas.

1.10.1 - Estrutura condicional simples

Algoritmo C – ANSI

se condição

então seqüência de comandos

fim se

if ( condição )

{

seqüência de comandos;

}

ex.:algoritmo

declare a, b numéricoleia a, bse a > b

então escreva "o maior é:", afim sese b > a

então escreva "o maior é:", bfim sese b = a

então escreva "o dois são iguais a: ", afim 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 são iguais a: %d”, a);}

}

Page 18: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 18/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 15

1.10.1.1 - Exercício Exemplo:

Fazer um algoritmo que: dado um número inteiro qualquer verificar e escrever se este número é par ou ímpar.

Algoritmo C – ANSI

algoritmodeclare a numéricoleia ase resto(a,2) = 0

então escreva a," é par"fim sese resto(a,2) ¹ 0

então escreva a," é ímpar"fim se

fim algoritmo

#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);}

}

Page 19: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 19/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 16

1.10.1.2 - Exercício Exemplo:

Fazer um algoritmo que: dado um número verificar e escrever se este número é um quadrado perfeito.

Algoritmo C – ANSI

algoritmodeclare num, intquadnum, quadnum,

dif numéricoleia numquadnum ¬ Ö numintquadnum ¬ trunca(quadnum)

dif ¬ quadnum - intquadnumse dif = 0

então escreva num," é quadrado perfeito"

fim sese dif ¹ 0

então escreva num," não é quadrado perfeito"

fim sefim algoritmo

#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);

}}

Page 20: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 20/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 17

1.10.2 - Estrutura condicional composta

Algoritmo C – ANSI

se condição

então seqüência 1 de comandos

senão seqüência 2 de comandos

fim se

if ( condição )

{

seqüência 1 de comandos;

}

else

{

seqüência 2 de comandos;

}

ex.:algoritmo

declare a, b, x ,y numéricoleia a, bse a = b

então x ¬ 1,5y ¬ 2,5

senão x ¬ -1,5y ¬ -2,5

fim sefim 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;

}}

Page 21: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 21/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 18

1.10.2.1 - Exercício Exemplo:

Fazer um algoritmo que: dado um número inteiro qualquer verificar e escrever se este número é par 

ou ímpar.

Algoritmo C – ANSI

algoritmodeclare a numéricoleia ase resto(a,2) = 0

então escreva a," é par"senão escreva a," é impar"fim se

fim algoritmo

#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);

}}

Page 22: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 22/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 19

1.10.2.2 - Exercício Exemplo:

Fazer um algoritmo que: dado um número inteiro qualquer verificar e escrever se este número é umnumero quadrado perfeito.

Algoritmo C – ANSI

algoritmodeclare num, intquadnum, quadnum,

dif numéricoleia numquadnum ¬ Ö num

intquadnum ¬ trunca(quadnum)dif ¬ quadnum - intquadnumse dif = 0

então escreva num," é quadrado perfeito"

senão escreva num," não é quadrado perfeito"

fim sefim algoritmo

#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);

}}

Page 23: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 23/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 20

1.10.3 - Estruturas condicionais aninhadas.

1.10.3.1 - Exercício Exemplo:

Fazer um algoritmo que: dado três números inteiros, determinar e imprimir o menor deles.

Algoritmo C – ANSI

algoritmodeclare a, b, c, menor numéricoleia a, b, cse (a < b) e (a < c)

então menor ¬ asenão se (b < c)

então menor ¬ bsenão menor ¬ c

fim sefim seescreva "o menor valor e :", menor 

fim algoritmo

#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);

}

Page 24: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 24/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 21

1.10.3.2 - Exercício Exemplo:

Fazer um algoritmo que: dado três números inteiros, verificar se eles podem formar um triângulo;formando um triângulo verificar e escrever qual o tipo de triângulo é formado (equilátero, isósceles ou

escaleno).

Algoritmo C – ANSI

algoritmodeclare x, y, z numéricoleia x, y, zse (x < y + z) e (y < x + z) e (z < x + y)

então

se (x = y) e (x = z)então escreva "triânguloequilátero"

senãose (x = y) ou (x = z) ou (y = z)

então escreva "triânguloisósceles"

senão escreva "triânguloescaleno"

fim sefim se

senão escreva "não existe triângulo"fim se

fim algoritmo

#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");}

}

Page 25: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 25/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 22

1.11 - Estruturas de Repetição

A estrutura de repetição permite que uma seqüência de comandos seja executada repetidamente ate

que uma determinada condição de interrupção seja satisfeita.

1.11.1 - Estrutura de repetição 1ª forma - interrupção no início.

Algoritmo C – ANSI

repita

se condiçãoentão interrompa

fim se

seqüência de comandos

fim repita

1ª opção de implementação

for(inicialização ; condição ; incremento){

seqüência de comandos;

}

2ª opção de implementação

while (condição)

{

seqüência de comandos;

}

ex.:algoritmo

declare i numéricoi ¬ 1

repitase i > 100entao interrompa

fim seescreva “o numero e: “,ii ¬ i + 1

fim repitafim algoritmo

ex.: 1ª opção de implementação#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);}

}

Page 26: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 26/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 23

Algoritmo C – ANSI

ex.:algoritmodeclare i numéricoi ¬ 1repita

se i > 100entao interrompa

fim seescreva “o numero e: “,ii ¬ i + 1

fim repita

fim algoritmo

2ª opção de implementação#include<conio.h>#include<stdio.h>void main(void){

int i = 1;clrscr();while(i<=100){

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

}}

Page 27: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 27/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 24

1.11.1.1 - Exercício Exemplo:

Fazer um algoritmo que: leia um conjunto de cinqüenta números inteiros e determine e escreva paracada numero lido se este é par ou ímpar.

Algoritmo C – ANSI

algoritmodeclare num, cont numéricocont ¬ 0repita

se cont ³ 50entao interrompa

fim se

leia numse (resto(mun,2) = 0)

entao escreva num,“e par”senao escreva num,“e impar”

fim secont ¬ cont + 1

fim repitafim algoritmo

1ª opção de implementação#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);}

}}

Page 28: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 28/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 25

Algoritmo C – ANSI

algoritmodeclare num, cont numéricocont ¬ 0repita

se cont ³ 50entao interrompa

fim seleia numse (resto(mun,2) = 0)

entao escreva num,“ PAR”senao escreva num,“ IMPAR”

fim secont ¬ cont + 1

fim repitafim algoritmo

2ª opção de implementação#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++;

}}

Page 29: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 29/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 26

1.11.2 - Estrutura de repetição 2ª forma - interrupção no interior.

Algoritmo C – ANSIrepita

seqüência de comandos 1

se condição

então interrompa

fim se

seqüência de comandos 2

fim repita

1ª opção de implementação

seqüência de comandos 1;

while (condição)

{

seqüência de comandos 2;

seqüência de comandos 1;

}

ex.:

algoritmo

declare nome, {primeiro nome da pessoa}

sobrenome,{sobrenome da pessoa}

nomec {nome completo da pessoa}

literal

repita

leia nome

se nome = “fim”

entao interrompa

fim se

leia sobrenome

nomec ¬ nomec | nome

ex.: 1ª opção de implementação

#include<stdio.h>

#include<conio.h>

#include<string.h>

void main(void)

{

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

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

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

clrscr();

 printf("Primeiro nome: ");

scanf("%s",&nome);

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

{

Page 30: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 30/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 27

nomec ¬ nomec | “ ”

nomec ¬ nomec | sobrenome

escreva “o nome completo da pessoa e:”, nomec

fim repita

fim algoritmo

printf("Sobrenome: ");

scanf("%s",&sobrenome);

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

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

strcat(nomec,nome);

strcat(nomec," ");

strcat(nomec,sobrenome);

 printf("nome completo: %s",nomec);

 printf("Primeiro nome: ");

scanf("%s",&nome);

}

}

Page 31: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 31/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 28

1.11.2.1 - Exercício Exemplo:

Fazer um algoritmo que: leia um numero indeterminado de linhas contendo cada uma a altura de um

indivíduo. A última linha, que não entrará nos cálculos, contém o valor da altura igual a 0.Calcule eescreva a altura média deste grupo.

Algoritmo C – ANSI

algoritmodeclare altura, {altura da pessoa}

media,{media das alturas}contpes {contador de pessoas}

somaalt {somatório das alturas }numerico

repitaleia alturase altura = 0

entao interrompafim secontpes ¬ contpes + 1somaalt ¬ somaalt + altura

fim repitamedia ¬ somaalt / contpesescreva “a media das alturas e: ”,media

fim algoritmo

#include<conio.h>#include<stdio.h>

void main(void)

{float altura,/*altura da pessoa*/

media,/*media das alturas*/somaalt = 0;/*somatório 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);}

Page 32: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 32/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 29

1.11.3 - Estrutura de repetição 3ª forma - interrupção no fim.

Algoritmo C – ANSIrepita

seqüência de comandos

se condição

então interrompa

fim se

fim repita

1ª opção de implementação

do

{

seqüência de comandos ;

} while (condição);

ex.:

algoritmo

declare i numérico

i ¬ 1

repita

escreva “o numero e: “,i

i ¬ i + 1

se i ³ 100

então interrompa

fim se

fim repita

fim algoritmo

ex.: 1ª opção de implementação

#include<conio.h>

#include<stdio.h>

void main(void)

{

int i = 0;

clrscr();

do

{

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

i++;

}while (i <= 100);

}

Page 33: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 33/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 30

1.11.3.1 - Exercício Exemplo:

Fazer um algoritmo que: leia 100 números inteiros, calcule o somatório de todos os números pares

digitados.

Algoritmo C – ANSI

Algoritmodeclare num, {numero digitado}

somapar,{somatório dos pares}contnum {contador de numeros}numerico

somapar ¬ 0cont ¬ 0repita

leia numse (resto(num,2) = 0)

então somapar ¬ somapar + numfim secontnum ¬ contmun + 1se contmun = 100

então interrompa

fim sefim repitaescreva “o somatório e : ", somapar 

fim algoritmo

#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);

}

Page 34: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 34/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 31

1.11.4 - Estruturas de repetição aninhadas e em seqüência.

1.11.4.1 - Exercício Exemplo:

Fazer um algoritmo que: leia um numero indeterminado de linhas contendo cada uma um numerointeiro positivo qualquer. A última linha que não entrará nos cálculos deverá conter um valor igual a 0.Para cada um destes números calcular o seu fatorial.

Algoritmo C – ANSI

algoritmodeclare num,{numero inteiro lido}

fat,{valor do fatorial do numero}cont{variavel auxiliar contador}numérico

repitaleia numse num = 0

então interrompafim secont ¬ 1fat ¬1repita

se cont > num

então interrompafim sefat ¬fat * contcont ¬ cont + 1

fim repitaescreva "o fatorial de ",num," = ", fat

fim repitafim algoritmo

#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);

}}

Page 35: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 35/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 32

1.11.4.2 - Exercício Exemplo:

Fazer um algoritmo que: leia um número indeterminado de linhas contendo cada uma um númerointeiro positivo qualquer. A última linha que não entrará nos cálculos deverá conter um valor igual a 0.

Para cada um destes números calcular o seu fatorial e se o número é um numero perfeito.

Algoritmo C – ANSI

algoritmodeclare num,{numero inteiro lido}

fat,{valor do fatorial do numero}cont,{variável auxiliar contador}somat,{somatório dos divisores}numérico

repitaleia numse num = 0

então interrompafim se

 

cont ¬ 1fat ¬1repita

se cont > numentão interrompafim sefat ¬fat * contcont ¬ cont + 1

fim repitaescreva "o fatorial de ",num," = ", fat

cont ¬ 1somat ¬ 0

repitase (resto(num,cont) = 0)

então somat ¬ somat + contfim secont ¬ cont + 1se cont >= num

então interrompafim se

fim repita

#include<conio.h>#include<stdio.h>

void main(void){

int num,/*numero inteiro lido*/

fat,/*valor do fatorial do numero*/cont,/*variavel auxiliar */somat;/*somatorio dos divisores*/

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);cont= 1;somat = 0;do{

if ((num%cont)==0){

somat= somat + cont;

}cont++;}while(cont<num);if (somat == num){

 printf("\no %d e perfeito",num);}else{

 printf("\no %d nao e perfeito",num);}

 printf("\nnumero:");

Page 36: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 36/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 33

se (somat = num)então escreva "o ",num," e

 perfeito "senão escreva "o ",num," não e

 perfeito "fim se

fim repitafim algoritmo

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

}

Page 37: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 37/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 34

2.0 - Estruturas de Dados em Algoritmo e C-ANSI

2.1-

Variáveis compostas homogêneasVariáveis compostas homogêneas correspondem a posições de memória, identificadas por um

mesmo identificador, individualizadas por um índice e cujo conteúdo é do mesmo tipo.

2.1.1 - Variável composta homogênea unidimensional (Vetor)

Algoritmo C – ANSI

declare lista de identificadores [li : ls] nome

do tipoonde:

declare : palavra reservada do algoritmo

lista de identificadores : identificadoresescolhidos para as variáveis, devem ser separadas por virgulas.

li : limite inferior do intervalo do índice

ls : limite superior do intervalo do índice

nome do tipo : um dos tipos básicos(numérico, lógico e literal)

tipo identificador[t];

onde :

tipo : um dos tipos básicos (int, float, double,char, void)

identificador : identificador da variável

t : capacidade de armazenamento da variável

ex:

declare nota[1 : 10] numérico

declare altura, peso[1: 30] numérico

ex:

int nota[10];

float altura[30], peso[30];

Page 38: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 38/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 35

Algoritmo C – ANSI

A referência ao conteúdo do n-ésimoelemento do conjunto é feita através da seguintenotação:

identificador[pos]

onde:

identificador é quem identifica a variável

 pos : posição do elemento dentro da variável

A referência ao conteúdo do n-ésimoelemento do conjunto e feita através da seguintenotação:

identificador[pos]

onde:

identificador é quem identifica a variável

 pos : posição do elemento dentro da variável

ex:

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

ex:

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

Page 39: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 39/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 36

2.1.1.1 - Exercício Exemplo:

Fazer um algoritmo que: leia um conjunto de 10 notas, calcule e escreva a média das notas, calculee escreva quantas notas estão abaixo da média.

Algoritmo C – ANSI

algoritmodeclare notas[1 : 10],{vetor de notas}

numéricodeclare media { media das notas}

cont,{variável auxiliar contador}contalunos,{variável auxiliar 

contador de alunos}

soma,{somatório das notas}numérico

 cont ¬0soma ¬ 0repita

se cont ³ 10então interrompa

fim seleia notas[cont]

soma ¬ soma + notas[cont]cont ¬ cont + 1fim repitamedia ¬ soma/10cont ¬0contalunos ¬0repita

se cont ³ 10então interrompa

fim sese notas[cont] < media

então contalunos ¬ contalunos +1fim secont ¬ cont + 1

fim repitaescreva contalunos, “obtiveram nota menor 

que”, mediafim algoritmo

#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);}

Page 40: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 40/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 37

2.1.2 - Variável composta homogênea bidimensional (Matriz)

Algoritmo C – ANSI

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

onde:

declare : palavra reservada do algoritmo

lista de identificadores : identificadoresescolhidos para as variáveis, devem ser separadas por vírgulas.

li : limite inferior do intervalo do índice

ls : limite superior do intervalo do índice

nome do tipo : um dos tipos básicos(numérico, lógico e literal).

tipo identificador[t][t];

onde :

tipo : um dos tipos básicos (int, float,double, char, void)

identificador : identificador da variável

t : capacidade de armazenamento da variável

ex:declare matriz[1 : 10, 1 : 10] numéricodeclare altura, peso[1: 30, 1 : 5] numérico

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

A referência ao conteúdo do n-ésimoelemento do conjunto é feita através da seguintenotação:

identificador[linha, coluna]

onde:

identificador : é quem identifica a variável

linha : a linha que se encontra o elementodentro da variável

coluna : a coluna que se encontra o elementodentro da variável

A referência ao conteúdo do n-ésimoelemento do conjunto é feita através da seguintenotação:

identificador[linha][coluna]

onde:

identificador : é quem identifica a variável

linha : a linha que se encontra o elementodentro da variável

coluna : a coluna que se encontra o elementodentro da variável

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

 peso[8,2] ¬ 68

ex: printf("o valor e: %d", matriz[5][3]);scanf("%d",&altura[4][5]);

 peso[8][2] = 68;

Page 41: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 41/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 38

2.1.2.1 - Exercício Exemplo:

Fazer um algoritmo que: leia duas matrizes A e B de dimensão 3x3, calcule e escreva a matriz C3x3 fruto de C = A + B.

Algoritmo C – ANSI

algoritmoconst tam = 2declare MA,MB,MC[1 : 3, 1 : 3],{matrizes}

 Numéricodeclare l, {linha da matiz}

c {coluna da matriz}numérico

l ¬0repita

se l ³ tamentão interrompa

fim sec ¬ 0repita

se c > tamentão interrompa

fim se

leia Ma[l,c]l ¬ l + 1fim repitac ¬ c + 1

fim repital ¬0repita

se l ³ tamemtão interrompa

fim sec ¬ 0

repitase c ³ tam

então interrompafim seleia Mb[l,c]l ¬ l + 1

fim repitac ¬ c + 1

fim repital ¬ 0

repita

#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]);

}}

}

Page 42: Apostila Algortimo e Cpadrao Versao UFG

5/9/2018 Apostila Algortimo e Cpadrao Versao UFG - slidepdf.com

http://slidepdf.com/reader/full/apostila-algortimo-e-cpadrao-versao-ufg 42/42

 ______________________________________________________________________________________________________  A LGORITMOS  E  STRUTURADOS C ODIFICADOS NA L INGUAGEM C-ANSI  Pág. 39

se l ³ tamemtão interrompa

fim sec ¬ 0

repitase c ³ tam

então interrompafim semc[l,c] ¬ Ma[l,c] + Mb[l,c]escreva mc[l,c]l ¬ l + 1

fim repitac ¬ c + 1

fim repita

Bibliografia

SCHILDT, Herbert. C - Completo e Total , Editora Makron Books, 3ª edição.FARRER , Harry. At all. Algoritmos Estruturados, Editora LTC, 3ª Edição.