Escolar Documentos
Profissional Documentos
Cultura Documentos
Apostila
de
Algoritmos
e
Linguagem
C
Programação
Estruturada
PROFª
INGRID
SANTOS
Em
construção...
1
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Algoritmos
1 ABORDAGEM
CONTEXTUAL
O uso de algoritmos é quase tão antigo quanto à matemática. Com o passar do tempo, entretanto, ele foi
bastante esquecido pela matemática. Com o advento das máquinas de calcular e mais tarde os computadores, o
uso de algoritmos ressurgiu com grande vigor, como uma forma de indicar o caminho para a solução dos mais
variados problemas.
Algoritmo não é a solução do problema, pois, se assim fosse, cada problema teria um único algoritmo.
Algoritmo é o caminho para a solução de um problema, e em geral, os caminhos que levam a uma solução são
muitos.
Ao longo dos anos surgiram muitas formas de representar os algoritmos, alguns utilizando linguagens
semelhantes às linguagens de programação e outras utilizando formas gráficas.
O aprendizado de algoritmos não se consegue a não ser através de muitos exercícios.
Algoritmo
__________
Problema
__________
Solução
__________
__________
__________
__________
2
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
1.2
FORMAS
DE
REPRESENTAÇÃO
DE
ALGORITMOS
Dentre as formas de representação de algoritmos mais conhecidas podemos citar: Descrição Narrativa,
Fluxograma Convencional e Pseudocódigo.
• Receita de bolo:
1.2.2 Pseudocódigo
Esta forma de representação de algoritmos, também conhecida com português estruturado ou portugol, é
bastante rica em detalhes e, por assemelhar-se bastante à forma em que os programas são escritos.
Esta representação é suficientemente geral para permitir que a tradução de um algoritmo nela
representado para uma linguagem de programação específica seja praticamente direta.
Algoritmo
<nome_do_algoritmo>
Var
Inicio
<corpo do algoritmo>
fimalgoritmo
Onde:
3
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Algoritmo é uma palavra que indica o início da definição de um algoritmo em forma depseudocódigo.
<nome_do_algoritmo> é um nome simbólico dado ao algoritmo com a finalidade de distingui-lodos demais.
<declaração_de_variáveis>consiste em uma porção opcional onde são declaradas asvariáveis globais usadas no
algoritmo principal e, eventualmente, nos subalgoritmos.
<subalgoritmos>consiste de uma porção opcional do pseudocódigo onde são definidos ossubalgoritmos.
Início e Fim são respectivamente as palavras que delimitam o início e o término do conjunto deinstruções do
corpo do algoritmo.
ALGORITMOS
LINGUAGEM
C
Algoritmo
Exemplo
<inclusão
das
b ibliotecas>
var
main(
)
<declaração
d e
variáveis>
{
inicio
<declaração
das
variáveis>
<corpo
do
a lgoritmo>
<
corpo
do
programama>
fim
}
Complexidade: A complexidade pode ser vista como um sinônimo de variedade, as quaisdevem ser
previstas na sua solução. Deve-se fazer o máximo para diminuir a complexidade,a fim de controlar o problema e
encontrar a solução. Deve-se diferenciar O que de Como. Aforma errada de interpretação de um problema pode
levar a respostas irrelevantes à soluçãoalmejada ou até mesmo a nenhuma solução.
Legibilidade: Mede a capacidade de compreensão de um algoritmo por qualquerobservador, a clareza
com que sua lógica está exposta. Quanto mais legível for umalgoritmo, menor será sua complexidade.
Portabilidade: para trabalhar os algoritmos usa-se uma pseudo-linguagem, que visa apermitir a
representação dos algoritmos através da língua portuguesa (portuguêsestruturado). Estes algoritmos poderão ser
convertidos facilmente para qualquer linguagemde programação usual.
Técnica de resolução por método Cartesiano: é um método que ataca um problemagrande, de difícil
solução, dividindo-o em problemas menores de soluções mais fáceis
Planejamento reverso: consiste em, a partir do resultado final, determinar quais são oscomponentes
básicos para a solução.
Referencias: http://www.cefetrn.br/~ajdsouza/algo/PDF/aula1.pdf
4
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas
em sua memória. Estas informações podem ser classificadas em dois tipos: instruções e dados.
As instruções comandam o funcionamento da máquina e determinam a maneira como devem ser
tratados os dados.
Os dados são as informações a serem processadas pelo computador. Os dados podem ser
classificados em três tipos, que sintetizam os padrões utilizados na maioria das linguagens: numéricos,
caracteres e lógicos.
É toda e qualquer informação numérica que pertença ao conjunto dos números inteiros (positivo,
negativo ou nulo). Exemplos:
• A quantidade de funcionários de uma empresa é um dado inteiro, pois não existe parte fracionária
(não há ½ pessoa);
• O número de cheques emitidos por um correntista (Não há como emitir uma quantidade fracionária
de cheques);
É toda e qualquer informação numérica que pertença ao conjunto dos números reais (positiva,
negativa, nula, inteira e fracionária). Exemplos:
• O valor a pagar por uma compra em uma loja: real, pois representa um valor monetário que pode
incluir centavos (uma compra pode até resultar num valor exato, como R$100,00, mas a natureza
do dado continua sendo real);
• Litros abastecidos em um posto de gasolina: é um tipo de dado real, pois é possível fazer um
abastecimento de uma quantidade fracionária de litros (Ex.: 23.7 litros)
• Altura de uma pessoa em metros: real, pois normalmente medimos a altura com duas casas
decimais (Ex.: 1,83).
Observação:
• Um dado real, é representado somente por dígitos, ponto decimal e sinal de mais ou de menos,
qualquer outra escrita do número será considerada um erro de sintaxe.
Exemplo: R$20,50 20.50 (retira-se o símbolo monetário e troca-se a vírgula por ponto).
5
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
2.1.3
Tipo
caractere
Representa um caractere a ser armazenado na memória. Um caractere pode ser uma letra, um dígito
ou um símbolo especial. Todo caractere é indicado entre aspas (“”). Exemplos:
• A opção escolhida por um aluno numa questão de múltipla escolha é um dado caractere, se
considerarmos que ele pode escolher entre A e E;
• O sinal de pontuação no final de uma frase é um dado do tipo caractere, pois pode ser o sinal “.” ou
ainda “?” ou “!”.
Representa um conjunto de caracteres a ser armazenado na memória, que pode ser composto por
letras, dígitos ou outros símbolos. Como num caractere, uma cadeia de caracteres também é indicado entre
aspas (“”). Também é conhecido como dado Literal, Texto ou String. Exemplos:
• O nome de um vendedor em uma loja: é uma cadeia, pois é composto por letras e espaços (Ex.:
“Carla da Rosa”);
• Um telefone de um cliente de uma corretora, pois pode ser representado da seguinte forma: 5555-
1234 (uma cadeia composta por dígitos e o símbolo de traço). Mesmo que seja representado apenas
por dígitos (55551234), a sua natureza não é um valor numérico;
• Endereço de entrega de um produto (Ex.: “Rua das Flores, 23 – Grupo 8”).
Os tipos dados apresentados são utilizados para representar dados numéricos, e alfanuméricos, porém há
situações que há necessidade de representar um estado, uma situação que só pode ser verdadeira ou falsa (e
nenhuma outra a mais), neste caso usa-se então o dado lógico (ou booleano, por ter sido desenvolvido na
álgebra de Boole). Exemplos:
• Um cheque emitido pode ou não ter fundos: se quisermos armazenar a situação deste cheque (não o
valor, mas seu estado), já que ter fundos é uma situação que só pode ser verdadeira ou falsa;
• Estado de funcionamento de um automóvel: pois o automóvel só pode estar ligado ou desligado.
ALGORITMOS
LINGUAGEM
C
inteiro
int
real
float,
double
caracter
char
literal
ou
cadeia
d e
caracteres
string
logico
boolean
6
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
2.3
OPERADORES
E
EXPRESSÕES
Os operadores são símbolos conectivos usados para efetuar algum cálculo numérico.
+ (adição) ** ou ^ (potenciação)
- (subtração) div ou # (divisão inteira)
* (multiplicação) mod ou % (resto da divisão)
/ (divisão)
Exemplos:
2+3 é igual a 5
7*4 é igual a 28
3.2*9 é igual a 28.8
5/2 é igual a 2.5
2-9 é igual a -7
11 # 3 é igual a 3 (o quociente de uma divisão inteira)
11 % 3 é igual a 2 (o resto da divisão inteira)
11 div 3 é igual a 3 (o quociente de uma divisão inteira)
11 mod 3 é igual a 2 (o resto da divisão inteira)
Como o próprio nome indica, um operador relacional existe para estabelecer uma relação entre dois
elementos, cujo resultado da comparação será sempre falso ou verdadeiro.
= (igual) <= (menor ou igual)
< (menor que) >= (maior ou igual)
> (maior que) <> (diferente)
Exemplos:
3 > 4 é igual a falso
10 >= 9 é igual a verdadeiro
-1 > -2 é igual a verdadeiro
7.3 <> 8.9 é igual a verdadeiro
4 < 3 é igual a falso
7
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Estes operadores permitem estender o uso dos operadores relacionais, estabelecendo composições
lógicas mais sofisticadas.
E (conjunção de operação)
Ou (disjunção de operação)
Não (negação de operação)
X Y XeY
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Falso
Falso Verdadeiro Falso
Falso Falso Falso
X Y X ou Y
Verdadeiro Verdadeiro Verdadeiro
Verdadeiro Falso Verdadeiro
Falso Verdadeiro Verdadeiro
Falso Falso Falso
X NAO X
Verdadeiro Falso
Falso Verdadeiro
Um operador de atribuição serve para atribuir um valor ou um resultado de uma expressão a uma
variável, o mesmo que acontece na matemática quando temos a expressão X=5 quer dizer que o valor de X é 5,
em algoritmos usamos ou := para representar o igual (=) da matemática.
Exemplos:
X:=5 ou X5
Assim como na matemática, pode ser necessário fazer combinações entre os operadores. Além dos
operadores, uma expressão pode conter também símbolos de parênteses, para mudar a prioridade do
cálculo.
A tabela a seguir apresenta a prioridade assumida para o cálculo de expressões:
8
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
1º Lugar Parênteses mais internos
2º Lugar Funções
3º Lugar Operadores aritméticos 1º: Potenciação
2º: Multiplicativos (*, /, #, %)
3º: Aditivos (+, -)
4º Lugar Operadores Relacionais
5º Lugar Operadores Lógicos 1º: Nao
2º: e
3º: ou
2.5
VARIÁVEIS
Definição de variável é tudo aquilo que está sujeito a variações, que é incerto, instável ou inconstante.
São áreas na memória do computador utilizadas pelo programa para guardar valores que serão usados
por eles.
Cada variável pode ter associada a ela um valor de um determinado tipo de dado. Sendo assim, têm-se
variáveis do tipo numérico, caractere e lógico.
Uma analogia muito comum é imaginar uma variável como uma caixinha dentro da memória do
computador. Esta caixa tem a capacidade de guardar um dado de certo tipo, e o nome da variável é como uma
etiqueta colada na frente da caixa. Exemplo:
18
Maria
idade
nome_aluno
2500
0,423
salario
Taxa_imposto
MEMÓRIA
As variáveis existem na memória durante a execução do algoritmo. Quando ele termina, é como se
todos os dados fossem apagados, e as caixas destruídas.
9
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Uma variável possui três atributos: um nome, um tipo de dado, e a informação por ela guardada.
Para nomear uma variável deve-se seguir algumas regras:
• Um nome de variável deve necessariamente começar com uma letra;
• Um nome de variável pode ter um ou mais caracteres;
• Um nome de variável não pode conter nenhum símbolo especial, exceto o anderline (_), nenhum acento
e espaço em branco;
• Um nome de variável não poderá ser uma palavra reservada a uma instrução da linguagem usada;
• Preferencialmente devem ter relação com o valor que a variável está guardando.
Exemplos de nomes de variáveis:
Válidos: Inválidos
nome 1lugar
x Endereço
endereco Salário
salario Nome empresa
nome_empresa _desconto
valor1
Todas as variáveis utilizadas em algoritmos devem ser definidas antes de serem utilizadas. Isto se faz
necessário para permitir que o compilador reserve um espaço na memória para as mesmas.
Nos algoritmos, todas as variáveis serão definidas no início do mesmo, por meio de um comando de
uma das seguintes formas:
var
nome_variavel: tipo_de_dado_da_variavel
lista_de_nomes_das_variaveis: tipo_de_dado
Exemplos:
var
nome:literal
nome, endereço:literal
salario:real
ALGORITMOS LINGUAGEM C
Nome_variável:tipo_de_dado Tipo_de_dado nome_variável
10
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Exemplos: Exemplos:
opcao: caracter char opcao;
Salario:real float salario;
Idade: inteiro int idade;
2
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
3 INSTRUÇÕES PRIMITIVAS
Como o próprio nome diz, instruções primitivas são os comandos básicos que efetuam tarefas essenciais
para a operação dos computadores, como entrada e saída de dados (comunicação com o usuário e com
dispositivos periféricos), e movimentação dos mesmos na memória. Estes tipos de instruções estão presentes na
absoluta maioria das linguagens de programação.
<nome_de_variável>:=<expressão>
Exemplo:
Nome:= “Ingrid”
Preco:= 15.85
Quant:=5
Total:= preço*quant
O comando de saída de dados é definido como escreva e é utilizado para exibir uma mensagem ou
informações contidas na memória dos computadores na tela do usuário.
O comando de entrada de dados é definido como leia e atribui um valor lido através do teclado para
uma variável especificada.
Sintaxes usadas:
• Leia (variável) Exemplo: leia (nome)
• Leia (lista_de_variáveis) Exemplo: leia (nome, end)
2
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
3.4
INSTRUÇÕES
PRIMITIVAS:
ALGORITMOS
X
LINGUAGEM
C
Na prática, muitas vezes é necessário executar ações diversas em função dos dados fornecidos ao
algoritmo. Em outras palavras, dependendo do conjunto de dados de entrada do algoritmo, deve-se executar um
conjunto diferente de instruções. Além disso, pode ser necessário executar um mesmo conjunto de instruções
um número repetido de vezes. Em resumo é necessário controlar o fluxo de execução das instruções (a
seqüência em que as instruções são executadas num algoritmo) em função dos dados fornecidos como entrada
do mesmo.
De acordo com o modo como o controle do fluxo de instruções de um algoritmo é feito, as estruturas
básicas de controle são classificadas em:
• Estruturas seqüenciais
• Estruturas condicionais
• Estruturas de repetição
Inicio
Escreva (“Boa noite!”)
Fim
2. Algoritmo para ler um número digitado pelo usuário e escrever o valor desse número multiplicado por 2.
Algoritmo Exemplo2
Variaveis
Numero: real
Inicio
1
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Escreva (“Digite um número”)
Leia (Numero)
Numero:= Numero*2
Escreva (“O dobro do número digitado é ”, Numero)
Fim
ALGORITMOS LINGUAGEM C
Algoritmo Exemplo1 #include <stdio.h>
Variaveis main()
{
Inicio printf(“Boa noite!”);
Escreva (“Boa noite!”) }
Fim
1. Construir um algoritmo que leia um número e escreva o valor deste número dividido por 2.
2. Construir um algoritmo que leia dois números e escreva a média aritmética entre eles.
3. Escreva um algoritmo que leia quatro números e escreva o valor da soma desses números.
4. Escrever um algoritmo que leia um valor que corresponde a um valor em hora e escreva quantos
segundos tem nessa hora.
5. Escreva um algoritmo que leia três números (A, B, C) e calcule a seguinte expressão:
R=A+B Q = (B+C)2
2
6. Faça um algoritmo que leia três notas de um aluno (n1, n2, n3) e a seguir calcule sua média final. A
fórmula para o cálculo da média é:
M = n1 + n2*2 + n3*3
6
2
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
As estruturas condicionais são utilizadas para que seja possível executar, ou não executar, instruções do
algoritmo, de acordo com uma condição analisada.
Nesta estrutura uma única condição é avaliada. Dependendo do resultado desta avaliação, um comando
ou conjunto de comandos serão executados (se avaliação for verdadeira) ou não serão executados (se avaliação
falsa).
Sintaxe usada:
Se (condição) entao
Instrução1
Instrução2
Fimse
Exemplo:
Algoritmo que informa se o número digitado pelo usuário é maior do que 10.
Algoritmo exemplo_se_simples
Variaveis
num: real
Inicio
Escreva (“Digite um número”)
Leia (num)
Se (num>10) entao
Escreva (“o número digitado é maior que 10”)
Fimse
Fim
Nesta estrutura uma única condição é avaliada. Se o resultado desta avaliação for verdadeira, um
comando ou conjunto de comandos serão executados. Caso contrário (avaliação falsa), um outro comando ou
conjunto de comandos serão executados.
Sintaxe usada
Se (condição) entao
Comando1 comandos executados caso
Comando2 condição for verdadeira
Senao
Comando3 comandos executados caso
Comando4 condição for falsa
Fimse
3
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Exemplo:
Algoritmo que informa se o número digitado pelo usuário é maior ou menor que 10.
Algoritmo Exemplo_se_composto
Variaveis
num:real
Inicio
Escreva (“Digite um número”)
Leia (num)
Se (num>10) entao
Escreva (“O número digitado é maior que 10”)
Senao
Escreva (“O número digitado é menor que 10”)
Fimse
Fim
Existem casos em que é necessário estabelecer verificação de condições sucessivas, em que uma
determinada ação poderá ser executada se um conjunto anterior de instruções ou condições for satisfeito. Sendo
a ação executada, ela poderá ainda estabelecer novas condições. Isto significa utilizar uma condição dentro de
outra condição. Este tipo de estrutura poderá possuir diversos níveis de condição, sendo chamadas de
aninhamentos ou encadeamentos.
Sintaxe usada
Se (condição1) entao
Comandos1
Senao
Se (condição2) entao
Comandos2
Senao
Se (condição3) entao
Comandos3
Senao
Comandos4
Fimse
Fimse
Fimse
Exemplo:
Algoritmo que verifica qual dos dois valores digitados pelo usuário é o maior, ou se os mesmo são
iguais.
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Algoritmo Exemplo_se_encadeado
Variáveis
a,b:real
Inicio
Escreva (“Digite dois valores”)
Leia (a, b)
Se (a>b) entao
Escreva (a, “é o maior”)
Senao
Se (b>a) entao
Escreva (b, “é o maior”)
Senao
Escreva (“os valores são iguais”)
Fimse
Fimse
Fim
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Decisão Encadeada Algoritmo Exemplo_se_encadeado #include<stdio.h>
Variáveis main()
a,b:real {
Inicio float a,b;
Escreva (“Digite dois valores”) printf (“Digite dois valores”);
Leia (a, b) scanf (“%f,%f”,&a, &b);
Se (a>b) entao if (a>b){
Escreva (a, “é o maior”) printf (“%f é o maior”,a);
Senao }else{
Se (b>a) entao if (b>a) {
Escreva (b, “é o maior”) printf ( “%f é o maior”,b);
Senao }else{
Escreva (“os valores são printf (“os valores são iguais”);
iguais”) }
Fimse }
Fimse }
Fim
1. Escreva um algoritmo para calcular o valor de desconto de um salário. Se o valor do salário lido for
menor que R$ 500,00, então o desconto é de 10 reais, caso contrário, o desconto é de 20 reais.
2. Construir um algoritmo que leia o nome e a idade de uma pessoa. Após as leituras, o algoritmo deverá
escrever uma mensagem informando se a pessoa pode, ou não, tentar obter a carteira de motorista.
3. Escrever um algoritmo que leia dois números (x e y), após as leituras, escrever qual dos dois é o maior.
OBS: os números digitados deverão ser diferentes
4. Escrever um algoritmo que leia 3 notas e calcule a média aritmética. A seguir, escrever a média obtida e
uma mensagem indicando se o aluno foi aprovado ou reprovado. Para ser aprovado a média deverá ser
maior ou igual a 5.
As estruturas de repetição, como o próprio nome já diz, são utilizadas para REPETIR determinados
comandos do algoritmo. O número de vezes que esses comandos serão repetidos, podem ser especificados pelo
programador ou analisados de acordo com uma condição.
4.3.1 Estrutura De Repetição Com Teste Lógico No Início (enquanto...faça...fimenquanto)
A estrutura enquanto é utilizada para se repetir comandos nos casos em que o número de repetições não
é conhecido.
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Os comandos vão sendo executados repetidamente até que uma condição específica seja satisfeita.
Essa condição que interrompe a repetição dos comandos é conhecida como teste ou flag.
Sintaxe usada
Enquanto (condição) faca
comando1
comando2
...
comando n
fimenquanto
Exemplo:
Algoritmo que fica lendo números e escrevendo o valor do dobro de cada número lido, até que seja
digitado um número menor ou igual a zero.
Algoritmo Exemplo_enquanto
Variáveis
num:inteiro
Inicio
Escreva (“Digite um número inteiro”)
Leia (num)
enquanto (num>0) faca
escreva (num*2)
escreva (“Digite outro número ou um valor negativo para sair”)
leia (num)
fimenquanto
fim
4.3.2 Estrutura de Repetição com Teste Lógico no Fim (repita...até que)
Caracteriza-se por uma estrutura que efetua um teste lógico no final de um laço, verificando se é
permitido ou não executar novamente o conjunto de comandos no interior do mesmo.
Sintaxe usada
Repita
comando1
comando2
...
comandon
Ate_que (condição)
Exemplo:
Algoritmo que fica lendo números e escreve o valor lido ao quadrado, até que seja digitado um valor
negativo.
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Algoritmo exemplo_repita
Variaveis
num:real
inicio
Repita
Escreva (“Digite um número”)
Leia (num)
Escreva (“0 quadrado do nº é ”, num^2)
Ate_que (num<0)
fim
A estrutura para é utilizada para repetição nos casos em que o número de repetições é conhecido, ou
seja, quando se sabe o número de vezes que serão repetidas as instruções.
Sintaxe usada
Para <variável> de <início> ate <fim> faca
comando1
comando2
...
comandoN
fimpara
Exemplo:
Exemplo
Existe uma condição especial em que a contagem deve ser de forma decrescente, onde o valor a variável
é decrementado em uma unidade. A sintaxe deste laço é a seguinte:
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Exemplo:
EXEMPLOS
Teste Lógico no Início Algoritmo exemploEnquanto #include<stdio.h>;
Var main()
idade: inteiro {
Inicio int idade;
Escreva (“Digite sua idade”) printf(“Digite sua idade”);
Leia (idade) scanf(“%d”,&idade);
enquanto (idade<0) faca while(idade<0){
escreva(“Idade inválida!”) printf(“Idade inválida!”);
Escreva (“Digite sua idade”) printf(“Digite sua idade”);
Leia (idade) scanf(“%d”,&idade);
Fimenquanto }
Escreva (“Você tem”, idade,”anos”) printf(“Você tem %d anos”,idade);
fim }
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Teste Lógico no Fim Algoritmo exemploRepita #include <stdio.h>
Var main()
Idade:inteiro {
Inicio int idade;
Repita do{
Escreva (“Digite sua idade”) printf(“Digite sua idade:”);
Leia (idade) scanf(“%d”,&idade);
Ate_que (idade>0) }while (idade<=0);
Escreva (“Você tem”,idade,”anos”) printf(“Você tem %d anos”,idade);
Fim }
Com variável de controle Algoritmos exemploPara #include <stdio.h>
Var main()
i:inteiro {
idades:inteiro int idade;
inicio for (int i=0; i<10; i++){
para i de 1 ate 10 faca printf(“Digite a %d ª idade”,i+1);
escreva(“Digite a “, i,”ª idade:”) scanf(“%d”,&idade);
leia (idade) printf(“você tem %d anos”,idade);
escreva(“Você tem”,idade,”anos”) }
fiimpara }
fim
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Com certeza a primeira coisa que você se perguntou quando viu um código C na sua frente, foi para que
servem #include<stdio.h> e #include<stdlib.h>? o que elas fazem?
Elas são bibliotecas que agrupam um conjunto de funções que facilitam a nossa vida na hora de
programar, isso mesmo as funções printf e scanf não são propriamente do C, elas fazem parte de uma biblioteca
que está inclusa no C, então podemos dizer que as funções printf e scanf são de uma biblioteca que pode ser
inclusa no C. Utilizando a palavra chave #include <nome da biblioteca>.
A biblioteca que contém o printf e scanf é a <stdio.h>, se repararmos o nome dessa biblioteca, veremos
que seu nome é bem sugestivo ao seu propósito: stdio.h (i/o input/output) entrada e saída. Já que printf faz a
saída do programa, ou seja, exibe algo para o usuário, e o scanf faz a leitura dos dados, ou seja, recebe a entrada
do teclado.
Então se a biblioteca <stdio.h> não for incluida no cabeçario do nosso programa não tem como usarmos
as funções que estão contidas dentro dela. Faça um teste, experimente apagar a linha: #include<stdio.h>, e
compile seu programa. Veja o que acontece.
Beleza, a biblioteca <stdio.h>, cuida da parte de entrada e saida de dados, mas e a<stdlib.h> para que
ela seve? A biblioteca <stdlib.h> funciona como um emulador da prompt do sistema operacional que você está
programando, caso seja Windows ele emula todos os comandos do DOS, se você estiver programando no Linux,
quem será emulado é o Terminal.
Aqui um exemplo de como é legal brincar com a biblioteca <stdlib.h>:
#include <stdlib.h>
int main() {
system("calc");
system("pause");
return 0;
}
O que aconteceu ... legal né? Isso é só o começo de um montão de coisa que você pode fazer utilizando
o system.
Ainda resta uma dúvida. Só existem essas bibliotecas em C ? É claro que não, existem muitas outras
bibliotecas que são especificas para cada situação. Existem bibliotecas para trabalhar com contas matemáticas,
bibliotecas para manipular textos, para manipular a formatação de exibição dos dados e uma infinidade de
outras coisas. A melhor coisa a ser feita é uma pesquisa rápida pelo Google. ;)
Função printf()
A função printf() já foi apresentada e explicada de forma simplificada no primeiro artigo. Agora teremos a
oportunidade de rever esses conceitos e aprofundar mais no assunto.
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Essa função tem por finalidade imprimir dados na tela. Isto é feito através da sintaxe:
Na “expressão de controle” são inseridos todos os caracteres a serem exibidos na tela e/ou códigos de
formatação, responsáveis por indicar o formato em que os argumentos devem ser impressos. Esses argumentos
devem estar incluídos na “lista de argumentos” e caso contenha mais de um devem ser separados por virgula. A
lista abaixo mostra os tipos de códigos de formatação permitido na linguagem C.
%c Caracteres simples
%s Cadeia de caracteres
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Os códigos especiais (barra invertida) são apresentados abaixo e também pode ser inseridos na
“expressão de controle”. Veja a descrição de cada um deles:
\n Nova linha
\t Tab
\b Retrocesso
\” Aspas
\\ Barra
\f Salta formulário
\0 Nulo
É possível também especificar o tamanho do campo, o número de casas decimais e justificar à esquerda
a saída.
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
Função scanf()
A função scanf() permite ler os dados de entrada do teclado. O seu uso é muito comum nos programas,
como podemos verificar em outros artigos. Veja agora a sua sintaxe que é muito parecida com a do printf().
As funções printf() e scanf() fazem parte da biblioteca padrão de entrada e saída de dados. Portanto
deve-se incluir a biblioteca “stdio.h” através da diretiva “include”. Isto é incluir a seguinte linha no começo dos
programas: “#include<stdio.h>”.
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos
ESCOLA
ESTADUAL
DE
EDUCAÇÃO
PROFISSIONAL
DR.
SOLON
TAVARES
Curso
Técnico
em
Eletroeletrônica
REFERÊNCIAS BIBLIOGRÁFICAS
Programando. Espaço aberto para alunos, curiosos e profissionais da área de programação. Disponível em:
http://programando-ads.blogspot.com.br/2012/02/para-que-servem-as-bibliotecas-e.html
Algoritmos
e
Linguagem
C
Profª
Ingrid
Santos