Post on 08-Jul-2015
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
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
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
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
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]
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 */
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--
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 <=
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 ª ||
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”
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;
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”, ¬a);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
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
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);
}
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
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.
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);}
}
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);}
}
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);
}}
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;
}}
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);
}}
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);
}}
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);
}
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");}
}
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);}
}
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++;
}}
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);}
}}
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++;
}}
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)
{
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);
}
}
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);}
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);
}
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);
}
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);
}}
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:");
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);}
}
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];
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]);
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", ¬as[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);}
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;
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]);
}}
}
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.