Logo Passei Direto
Buscar
Material
páginas com resultados encontrados.
páginas com resultados encontrados.

Prévia do material em texto

IFB / Campus Taguatinga
Curso Tecnológico em Automação Industrial
AJ - Antonio Justiniano
Algoritmos e Programação 
de Computadores - ALPC
PPC - Projeto Pedagógico de Curso
Objetivo: desenvolver algoritmos e programas de computadores a partir da 
abordagem estruturada com uso de estruturas sequenciais, condicionais e de 
repetição.
Pré-requisito: nenhum, mas recomenda-se Cálculo Diferencial e Integral I - CDI1.
Pós-requisito: Programação de Computadores I - PRG1.
Ementa:
● Conceito e desenvolvimento de algoritmos;
● Tipos de dados;
● Operações de entrada e saída;
● Estruturas fundamentais: sequência, decisão e repetição;
● Vetores e matrizes;
● Funções;
● Implementação de algoritmos usando uma linguagem de programação.
Conteúdo Programático
1. Introdução à computação;
2. Fundamentos da programação de computadores;
3. Lógica de programação de computadores;
4. Variáveis, atribuições e operadores aritméticos;
5. Comandos de entrada e saída;
6. Estruturas fundamentais:
6.1. Estruturas condicionais;
6.2. Estruturas de repetição;
7. Vetores e Matrizes;
8. Funções;
9. Introdução à Linguagem de Programação.
Metodologia de Trabalho
● Aulas participativas, onde o professor é o facilitador do 
conhecimento, em laboratório computacional com:
○ Uso de ambiente virtual da disciplina;
○ Apresentação de slides;
○ Explicação dos conteúdos;
○ Exploração dos procedimentos;
○ Análise de situações-problema;
○ Debate acerca de opiniões, podendo ser convergentes 
e divergentes;
○ Realização de atividades individuais e colaborativas.
● Todos devem preparar-se para os encontros, buscando o 
material necessário para atingir as metas de cada.
Avaliações e Recursos
Avaliações de aprendizagem:
● Nota = NA1*0,3+NA2*0,4+NAC*0,3 (N1*P1+N2*P2+N3*P3), onde:
○ A1: avaliação individual escrita;
○ A2: avaliação individual (produção de relatório técnico);
○ AC: avaliação colaborativa (resolução de atividades e seminário);
● Poderá haver uma prova substitutiva, ao final, com matéria 
cumulativa, para aqueles que desejarem substituir a menor das notas, 
considerando o peso daquela que se substituirá.
Recursos necessários:
● Quadro branco e pincéis;
● Projetor de slides;
● Computadores em rede com os seguintes softwares:
○ Navegador;
○ VisualG; DevC++ ou CodeBlocks.
Bibliografia Disponível
● Principal:
○ ASCENCIO, Ana Fernanda Gomes; CAMPOS, Edilene Aparecida 
Veneruchi de. Fundamentos da programação de computadores: 
algoritmos, Pascal, C/C++ e Java. 3ª ed. São Paulo: Pearson Education 
do Brasil, 2012 (pgs.3-270).
○ FORBELLONE, André Luiz Villar; EBERSPÄCHER, Henri Frederico. 
Lógica de programação: a construção de algoritmos e estruturas de 
dados. 3ª ed. São Paulo: Prentice Hall, 2005 (pgs.14-67).
○ SCHILDT, Herbert. C completo e total. Tradução de Roberto Carlos 
Mayer. 3. ed. São Paulo: Pearson/Makron, 2009.
● Complementar:
○ MANZANO, José Augusto N. G.; OLIVEIRA, Jayr Figueiredo. 
Algoritmos: Lógica para Desenvolvimento de Programação de 
Computadores. São Paulo: Érica, 26ª Ed., 2012.
○ MIZRAHI, Victorine Viviane. Treinamento em linguagem C. São Paulo: 
Pearson Prentice Hall, 2ª. Edição, 2008.
○ Conteúdos da Web, cujos links estão no documento de apresentação.
ALPC 72h/a 
- Agenda de 
2018s1 - 
Parte 1/3
02/03
Apresentações; Introdução à computação;
Fundamentos da Programação de Computadores;
Exercício 1.
09/03 Exercício 1: debate; Pensamento Computacional.
16/03
Avaliações: debate;
Ambiente para Programação de Computadores;
Técnicas de Programação de Computadores; Exercício 2.
23/03
Exercício 2: debate;
Português Estruturado; Uso do VisualG; Exercício 3.
06/04
Exercício 3: debate; Estruturas de controle; 
Exercício 4.
13/04 Exercício 4: debate.
ALPC 72h/a 
- Agenda de 
2018s1 - 
Parte 2/3
20/04 Avaliação 1: aplicação.
27/04
Avaliação 2: elaboração;
Estruturas de repetição; Exercício 5.
04/05
Exercício 5: debate;
Vetores e Matrizes; Exercício 6.
11/05
Avaliação 1: resultado;
Semana de Ciência & Tecnologia.
18/05
 Exercício 6: debate;
Funções; Exercício 7.
08/06
 Exercício 7: debate; Avaliação colaborativa: 
elaboração; Introdução à linguagem de programação 
C; Entrada e saída de dados em C.
ALPC 72h/a 
- Agenda de 
2018s1 - 
Parte 3
09/06 
(sábado) Avaliação 2: entrega. (5 aulas)
15/06
 Exercício 8: debate;
 Estruturas de controle condicional.
22/06
 Exercício 9: debate;
 Estruturas de Repetição.
29/06 Exercício 10: debate; Avaliação 2: resultado.
30/06 
(sábado)
 Avaliação colaborativa: finalização; resultado até 
4/07. (5 aulas)
05/07 Avaliação substitutiva; Resultado final. (2 aulas)
Atendimento: por e-mail ou agendar terças-feiras, 18h, 
Linf1/AT-05
Introdução à Computação
● Qual o Papel da Informática?
● Como ocorre o processamento de dados?
● O que é um computador? Para que serve?
● Como os computadores funcionam?
● Quais são os seus principais componentes?
● Como trabalhar com computadores?
● Qual é a organização básica de dados e informações?
Fundamentos da Programação de Computador
O que é lógica?
● O que você acha desta classificação? “Os animais se dividem em: a) 
pertencentes ao imperador, b) embalsamados, c) domesticados, d) leitões, e) 
sereias, f) fabulosos, g) cães em liberdade, h) incluídos na presente 
classificação, i) que se agitam como loucos, j) inumeráveis, k) desenhados 
com um pincel muito fino de pêlo de camelo, l) mas acabaram de quebrar a 
bilha, n) que de longe aparecem moscas.” (As palavras e as coisas)
● Percebemos que há uma mistura de assuntos e tentamos “por ordem na 
casa”, restabelecendo um critério, buscando aproximar e distinguir os animais 
pelas suas semelhanças e diferenças
● Ao tentarmos compreender a realidade, procuramos formas corretas para 
pensá-la. A lógica é a antessala da filosofia. Lógica vem do grego logos, que 
significa palavra, expressão, pensamento, conceito, discurso, razão
● A lógica é a arte de pensar corretamente e, visto que a forma mais complexa 
do pensamento é o raciocínio, a lógica estuda a “correção do raciocínio”, ou 
seja, a lógica visa “a ordem da razão”, colocar ordem no pensamento
Lógica Matemática ou Simbólica
● Teve como precursor George Boole e foi desenvolvida depois por Whitehead 
e Bertrand Russell
● Visa superar as dificuldades e ambiguidades de qualquer língua, que 
poderiam atrapalhar o rigor lógico do raciocínio
● Para evitar essas dificuldades, criou-se uma linguagem simbólica artificial. Por 
exemplo: usa-se as letras p, q, r, p1, q1, r1, etc. para indicar as variáveis; e, 
para designar os conectivos, usa-se os sinais:
○ ┓ para “não”
○ ∨ para “ou”
○ ∧ para “e”
○ ⇒ para “implica” ou “se ...., então ...”
○ ⇔ para “equivalente a” ou “se e somente se”
● Consideremos como exemplo:
○ O país está em guerra ou a situação externa é calma (p ∨ q)
○ Se o país não está em guerra (┓ p)
○ Logo, a situação externa é calma (⇒ q)
Álgebra das Proposições
● Álgebra das proposições, ou Álgebra de Boole, trabalha exclusivamente com 
afirmações em que se pode dizer: é falsa ou verdadeira, mas nunca ambas
● Conjunção
○ Duas proposições podem ser combinadas pelo conectivo “e” para resultar 
em outra proposição chamada conjunção. A conjunção das proposições p 
e q representamos por:
○ p ∧ q (leia-se p e q)
○ Na conjunção, apenas quando p e q são verdadeiras é que temos um 
resultado verdadeiro
● Disjunção
○ Quando a combinação de duas proposições é realizada pelo conectivo 
“ou” temos como resultado uma outra proposição chamada disjunção. A 
disjunção das proposições p e q representamos por:
○ p ∨ q (leia-se p ou q)
○ Na disjunção, basta que p ou q seja verdadeira que teremos um resultado 
verdadeiro
Prioridades na Álgebra das Proposições● Negação
○ Em uma proposição faz o mesmo efeito de se acrescentar a 
expressão “é falso que” no início ou a palavra “não” próxima 
ao verbo que gera a afirmação. A negação da proposição p 
representamos por:
○ ┓p(leia-se não p)
○ A negação inverte o resultado, de modo que se a afirmação 
é falsa será verdadeira, se é verdadeira será falsa
● A prioridade para os cálculos na álgebra das proposições é:
○ Negação, devendo ser resolvida primeiro
○ Conjunção, que é calculada em seguida
○ Disjunção, que deve ser resolvida por último
● Os parênteses são usados para alterar essas prioridades
Álgebra das Proposições e Funções Lógicas
● Considerando que cada proposição pode assumir apenas duas 
situações: verdadeiro ou falso, pode-se representar as 
proposições com variáveis binárias, conforme a álgebra 
booleana
● Em 1930 Alan Turing percebeu a estreita relação entre 
dispositivos de chaves e relés (circuitos), a álgebra de Boole e a 
teoria dos conjuntos
● Demonstrou que apenas três funções lógicas: E, OU e NÃO, 
são necessárias para o processo de determinação dos falsos e 
verdadeiros
● Fez circuitos elétricos que pudessem, usando apenas dois 
valores: presença e ausência de tensão, calcular os resultados 
possíveis para cada função
Tabelas da Verdade
● Conjunção
● Negação
A B S = A ∧ B
0 0 0
0 1 0
1 0 0
1 1 1
A S = ┓A
0 1
1 0
● Disjunção A B S = A ∨ B
0 0 0
0 1 1
1 0 1
1 1 1
O que é algoritmo?
● Conjunto de regras de operação cuja 
aplicação permite resolver um 
problema enunciado por meio de um 
número finito de operações
● O exemplo mais comum de algoritmo 
é uma receita culinária: cada passo 
deve ser detalhado e executado em 
sequência para se atingir o resultado 
desejado
● Ao ser descrito, deve-se definir as 
ações de modo claro e específico
● Parte de um estado inicial e, após um 
período de tempo previsto, chega a 
um resultado previsto e definido
● Estabelece uma norma de execução 
e um final previsto que sempre será 
alcançado se o mesmo algoritmo for 
executado novamente
Biscoitos de Nozes 
Ingredientes:
1 xícara de manteiga ou margarina
1/2 xícara açúcar de confeiteiro
1 colher (chá) baunilha
2 1/4 xícaras de farinha de trigo
1 pitada de sal
3/4 xícara de nozes bem picadas
Açúcar de confeiteiro para enfeitar
Preparo:
1 – Misture bem a manteiga e o açúcar. 2 – 
Junte a baunilha e a farinha peneirada com o 
sal. 3 – Misture novamente. 4 – Adicione as 
nozes e leve a massa à geladeira por uns 15 
minutos. 5 – Aqueça o forno em temperatura 
média (200 graus). 6 – Faça bolinhas de 2 cm 
de diâmetro e 7 – coloque numa assadeira 
sem untar. 8 – Leve para assar por uns 10 a 
12 minutos. 9 – Passe no açúcar de 
confeiteiro enquanto estão mornos.
Fundamentos da Programação de Computador
● Algoritmo pode ser traduzido segundo uma linguagem de 
programação em um programa que pode ser executado por um 
computador. O que é usado para a programação de computadores?
● Pseudolinguagem ou pseudocódigo (Português estruturado ou 
Portugol): notação que se assemelha a uma linguagem de 
programação, mas que também possibilita ao programador 
concentrar-se no problema a ser modelado sem “se prender” aos 
detalhes, simulando comandos e definições de dados de uma 
linguagem de programação qualquer
● Fluxograma (diagrama de blocos): diagrama que auxilia a explicar a 
sequência de instruções em algoritmos, usando símbolos para 
representar componentes como vídeo, impressão, processamento, 
armazenamento, etc.
● Diagrama de Chapin: quadro dividido por linhas que delimitam a 
ordem de execução dos comandos e instruções descritos 
Narrativa
Exercício 1 (no Nead)
● Considere as seguintes proposições:
○ p: Paris está na França
○ q: Paris está na Inglaterra
○ r: 2 + 2 = 5
○ s: 2 + 2 = 4
1. Qual será o valor verdade 
(falso/verdadeiro) das seguintes 
conjunções?
a. p ∧ s
b. p ∧ r
c. q ∧ s
d. q ∧ r
e. p ∧ q
f. r ∧ s
g. q ∧ s ∧ p
2. E o valor verdade destas 
disjunções?
a. p ∨ s
b. p ∨ r
c. q ∨ s
d. q ∨ r
e. p ∨ q
f. r ∨ s
g. q ∨ s ∨ p
3. Qual o valor verdade destas negações?
a. ┓p
b. ┓r
c. ┓p ∧ s
d. ┓q ∧ s
e. p ∨ ┓s
f. q ∨ ┓s
g. ┓q ∨ ┓s
h. ┓q ∧ s ∧ ┓p
4. Faça as tabelas da verdade de:
a ∧ ┓b, ┓a ∨ b e ┓(a ∧ b)
Ambiente para Programação de Computadores
● Linguagem de programação: uma linguagem desenvolvida para viabilizar a 
programação de computadores (C, Java, PHP, SQL, etc.)
● Ambiente de programação: conjunto de tecnologias que dá suporte à 
programação de computadores (sistema operacional, editor de texto, 
compilador, interpretador, etc.)
● Linguagem de máquina: conjunto de instruções que podem ser interpretados 
e executados diretamente pelo computador. É específica para cada um
● Linguagem Assembler (linguagem de baixo nível): representação da 
linguagem de máquina através de códigos mnemônicos
● Linguagem de alto nível: independe do conjunto de instruções da linguagem 
de máquina. Cada instrução de alto nível equivale a várias instruções da 
linguagem de máquina, sendo assim mais produtiva
● Compilador: tradutor de programas escritos em uma linguagem de 
programação para linguagem de máquina (ex. GCC). O programa convertido 
pode ser executado independente do compilador e do programa original
● Interpretador: é um programa que interpreta e executa outros programas 
escritos em alguma linguagem de programação
1. Descrever a sequência de instruções de maneira simples e 
objetiva, construindo um código limpo. Para isso há algumas 
diretrizes:
1.1. Usar somente uma instrução (verbo) por frase (linha)
1.2. Usar frases curtas e simples
1.3. Ser objetivo
1.4. Imaginar que está desenvolvendo um algoritmo para quem 
não trabalha com informática
1.5. Não usar palavras que tenham sentido dúbio
2. Ao montar um algoritmo, precisamos dividir o problema 
apresentado em três fases fundamentais:
2.1. Entrada
2.2. Processamento
2.3. Saída
Técnicas de Programação de Computadores
Exemplo de Construção de Algoritmo
● Calcular a média final de alunos, que realizaram quatro provas
● Média Final - P1 + P2 + P3 + P4
4
● Para montar o algoritmo proposto, responderemos a três perguntas:
○ Quais são os dados de entrada? Os dados são P1, P2, P3 e P4
○ Qual será o processamento a ser usado? Somar os dados de entrada e 
dividi-los por 4
○ Qual será o dado de saída? Será o valor da média final
● A narrativa então terá estas etapas:
○ Receba a nota da prova1 (entrada...)
○ Receba a nota da prova2
○ Receba a nota da prova3
○ Receba a nota da prova4
○ Some todas as notas (processamento...)
○ Divida o resultado da soma por 4
○ Mostre o resultado da divisão (saída)
Testes de Códigos
● Servem para revelar erros na codificação e busca examinar o resultado para 
ter precisão (testes e garantia da qualidade de software)
● O custo do erro é diretamente proporcional ao tempo que se leva para 
descobrí-lo, gerando custos maiores de retrabalho quando descobertos 
durante a implementação do SW
● Ao desenvolver um algoritmo deve-se sempre testá-lo
● Pode-se usar o TESTE DE MESA, que significa seguir as instruções do 
algoritmo de maneira precisa para verificar se o procedimento usado está 
correto, anotando-se as entradas e os resultados em tabela
Prova1 Prova2 Prova3 Prova4 Média
Constantes e Tipos de Dados
● É um determinado valor fixo, isto é, um valor que não se 
modifica durante a execução de um programa
● Os tipos de dados podem ser:
○ Numérica, positiva ou negativa
○ Lógica, que representa as situações falso e verdadeiro
○ Literal, composta por números, letras e símbolos
● No algoritmo uma constante literal deve aparecer entre 
aspas para que não seja confundida com outros itens
Variáveis
● Cada variável corresponde a uma posição de memória,cujo conteúdo pode 
variar durante a execução do programa, mas assume um valor a cada instante
● O nome da variável é formado por um ou mais caracteres, sendo que o 
primeiro sempre será uma letra. Deve ser o mais significativo possível, 
indicando a natureza dos dados que nelas estão sendo armazenados
● Só podem armazenar valores de um mesmo tipo de dados (numéricos, 
lógicos ou literais), tendo a seguinte sintaxe:
declare lista-de-identificadores nome-do-tipo, onde:
○ declare é uma palavra-chave do algoritmo
○ lista-de-identificadores são os nomes das variáveis e devem ser 
separadas por vírgula
○ nome-do-tipo é uma das três palavras-chaves: numérico, lógico ou literal
● Palavra-chave tem significado próprio, independente do algoritmo em que 
esteja inserida. São palavras reservadas, não podendo ser usadas como 
identificadores
Código Limpo, Comentários e Indentação
● São fundamentais para a clareza do algoritmo
● Comentário é um instrumento constituído de um texto 
explicativo que aparece após barras duplas
● Comentários são incluídos desde o início, contendo: definição 
do algoritmo, autor e data de alteração
● Exemplos:
○ declare MAT, //número da matrícula do aluno
NOTA, //total de pontos no semestre letivo
COD //código do curso
numerico
○ declare NOME, //nome completo do aluno
END, //endereço do aluno
C //conceito final
literal
Comandos de Entrada e Saída
● Entrada
○ Sintaxe: leia lista-de-identificadores, onde:
■ leia é a palavra-chave
■ lista-de-identificadores contém os nomes das variáveis, 
separados por vírgula, nas quais serão armazenados os 
valores provenientes do meio de entrada
● Saída
○ Sintaxe: escreva lista-de-identificadores e/ou 
constantes, onde:
■ escreva: palavra-chave
■ lista-de-identificadores: nomes das variáveis, separados por 
vírgula, cujos conteúdos serão mostrados através de um meio 
de saída
■ Constantes também são mostradas, expressas entre aspas
Comando de Atribuição
● Sintaxe:
identificador ← expressão, onde:
○ identificador é o nome da variável à qual está sendo 
atribuído o valor
○ ← é o símbolo de atribuição
○ expressão aritmética, lógica ou literal, cujo resultado é 
atribuído à variável, devendo ser compatível com o seu 
tipo
● O sinal de igual é usado apenas como operador relacional
Expressões Aritméticas
● São aquelas cujos operadores são aritméticos e cujos 
operandos são constantes e/ou variáveis do tipo numérico
● Possuem um conjunto de operações básicas que estão a 
seguir, em ordem de prioridade
● As prioridades podem ser alteradas com parênteses
PRIORIDADE OPERAÇÃO
1ª Potenciação, radiciação
2ª Multiplicação, divisão
3ª Adição, subtração
Expressões Literais
● Formadas por operadores e operandos (variáveis ou 
constantes) do tipo literal, tendo os primeiros uma grande 
variedade, dependendo de cada linguagem de programação
● Supondo que A e B são variáveis literais e que o símbolo | é 
um operador de concatenação (junção), a expressão A|B 
fornece como resultado um literal formado pelo conteúdo de 
A seguido pelo conteúdo de B
● Muitas vezes encontraremos estas expressões sob forma de 
funções, podendo fornecer os resultados como:
○ o número de caracteres de um literal
○ os N primeiros caracteres de um literal
○ os N últimos caracteres de um literal
Expressões: Exemplos
● Expressões aritméticas
○ MEDIA ← (NOTA1 + NOTA2) / 2
● Expressões lógicas
○ Se MEDIA > 7 e FALTA < CARGAHR * 0,25
■ então
● escreva “Aprovado”
■ senão
● escreva “Reprovado”
● Expressões literais
○ NOME ← “José”
○ SOBRENOME ← “Silva”
○ NOMECMPLT ← NOME|” “|SOBRENOME
○ escreva NOMECMPLT (José Silva)
Diagrama de Blocos
● Fluxograma é uma forma padronizada e eficaz para representar 
os passos lógicos de um determinado processamento
● Com o diagrama podemos definir uma sequência de símbolos, 
com significado bem definido, para facilitar a visualização dos 
passos de uma determinada atividade
● Alguns dos símbolos que iremos utilizar:
○ TERMINADOR: indica o INÍCIO ou FIM de um 
processamento
○ ENTRADA MANUAL: indica entrada de dados manual 
(teclado, mouse), com a mesma função do leia
○ PROCESSO: realiza um processamento como uma soma
○ DECISÃO: condições que sujeitam a execução do algoritmo
○ EXIBIR: mostra informações ou resultados, tendo a mesma 
função do escreva
Ferramentas de Apoio à Programação
● Para desenvolver em Português Estruturado (Portugol):
○ Notepad++
○ Visualg
■ Observe que há exemplos em Browse All Files
■ No ambiente Windows
● Após baixar, basta descompactar. Não precisa instalar
● Descompactadores Windows: Winrar, 7zip
■ No ambiente Ubuntu
● Instalar antes o Wine, necessário para executar aplicativos 
Windows no Linux, no Ubuntu Software ou em terminal
● Ou usar o Portugol Studio
● Os diagramas de blocos (Fluxograma) podem ser feitos em:
○ Ferramenta de desenho do Documentos Google (Inserir Desenho 
-> Forma e Linha)
○ Pencil (flowchart)
Exercício 2 (no Nead)
1. Construa algoritmos, com comentários, em português estruturado que:
a. Receba um número qualquer e mostre o dobro deste;
b. Receba dois números e informe a soma e o produto destes;
c. Receba o nome e o salário bruto de um funcionário, calcule e mostre o 
valor do imposto calculado, 8% sobre o salário bruto, e o salário líquido.
2. Elabore um algoritmo para pagamento de comissão de vendedores de peças, 
considerando que sua comissão será de 5% do total da venda e que serão 
informados os seguintes dados:
a. Identificação do vendedor;
b. Código da peça;
c. Preço unitário da peça;
d. Quantidade vendida.
3. Faça um diagrama de blocos (fluxograma) que leia a cotação do Dólar e um 
valor em Dólares, converta esse valor para Real e mostre o resultado
4. Crie os testes de mesa dos dois últimos problemas resolvidos
Português Estruturado
● Consiste na simulação de comandos de uma linguagem de 
programação qualquer, através de palavras do português, 
sendo obedecidos uma série de critérios e normas
● É uma simplificação extrema do Português, limitada a poucas 
palavras e estruturas que têm um significado muito bem 
definido
● Para que o algoritmo possa ser executado por uma máquina é 
importante que as instruções sejam corretas e sem 
ambiguidades
● Ao conjunto de palavras e regras que definem o formato das 
sentenças válidas chamamos sintaxe da linguagem
● Apesar de ser uma linguagem bastante simplificada, possui 
todos os elementos básicos e uma estrutura semelhante à de 
uma linguagem para programação de computadores
Formato do VisualG
Palavras Reservadas
● São palavras que fazem parte da sintaxe da linguagem e não podem ser 
usadas para outro propósito em um algoritmo que não seja aquele previsto 
nas regras de sintaxe
● Também são chamadas de palavras-chaves
aleatorio escreva leia real
algoritmo faca logico repita
arquivo falso nao se
e fimalgoritmo mod senao
ate funcao ou var
enquanto inicio para vetor
entao inteiro pausa verdadeiro
Operadores Aritméticos
● Na construção de algoritmos é feito também o 
mapeamento dos operadores da aritmética tradicional 
para os do Português Estruturado
Linearização de Expressões
● Na construção de algoritmos que realizam 
cálculos matemáticos todas as expressões 
aritméticas devem estar colocadas em linhas
● Podem haver parênteses dentro de parênteses 
no lugar do que seriam os colchetes e as 
chaves
● É a divisão de uma expressão em partes para 
proporcionar maior compreensão, definindo prioridades 
para a resolução da mesma
● Os parênteses indicam quais sub-expressões, dentro de 
uma expressão, serão executadas antes
● A princípio a execução é da esquerda para direita, mas 
devem ser consideradas:
○ as prioridades entre os operadores envolvidosna 
expressão
○ os parênteses que redefinem as prioridades
Modularização de Expressões
Regras para Nomeação de Variáveis
● Nomes de variáveis não podem ser iguais a palavras 
reservadas
● Devem possuir como primeiro caractere uma letra. Os 
demais caracteres podem ser letras, números e 
sublinhado
● Devem ter no máximo 127 caracteres
● Não podem conter espaços em branco
● A sintaxe do Portugol não é sensível à caixa das letras 
(case sensitivity), sem diferenciar letras maiúsculas de 
minúsculas, sendo NOME o mesmo que noMe
● Não podem haver duas variáveis com o mesmo nome, 
exceto os elementos de um mesmo vetor
Declaração de Variáveis no Portugol
● A seção de declaração de variáveis começa com a 
palavra-chave var, e continua com as seguintes sintaxes:
○ <lista-de-variáveis> : <tipo-de-dado>
○ <lista-de-variáveis> : vetor "["<lista-de-intervalos>"]" de 
<tipo-de-dado>
● Em <lista-de-variáveis>, os nomes das variáveis estão 
separados por vírgulas
● Em <lista-de-intervalos> os <intervalo> são separados por 
vírgulas, e têm a seguinte sintaxe:
○ <intervalo>: <valor-inicial> .. <valor-final>
○ Tanto <valor-inicial> como <valor-final> devem ser 
inteiros, onde <valor-final> deve ser maior do que 
<valor-inicial>
Variáveis no Portugol: Exemplos
● Exemplos de identificadores válidos:
○ NOME, Nota1, ESTADO_CIVIL, EstadoCivil
● Exemplos de identificadores inválidos:
○ 3Endereco, Estado Civil, PARA, numero/complemento
● Exemplos válidos de declaração:
var a: inteiro
Valor1, Valor2: real
vet: vetor [1..10] de real
matriz: vetor [0..4,8..10] de inteiro
nome_do_aluno: caractere
sinalizador: logico
○ vet tem 10 elementos, com os índices de [1] a [10]
○ matriz tem 15 elementos, com índices [0,8], [0,9], [0,10], 
[1,8], [1,9], [1,10], ... até [4,10]
Variáveis e Comentários
Tipos de Dados
● Podemos declarar variáveis em português estruturado 
com os seguintes tipos
Operador de Atribuição
● Para atribuir um valor em uma variável em um algoritmo 
utilizamos o operador de atribuição, que é representado 
por um sinal de maior que seguindo de um hífen (<-)
● Sempre à esquerda do comando de atribuição deve haver 
somente um identificador de variável
● Só se pode atribuir às variáveis valores do mesmo tipo da 
variável
Atribuições Possíveis Exemplos
variável <- constante idade <- 12 (lê-se idade recebe 12)
variável <- variável preço <- valor
variável <- expressão A <- B + C
Atribuição e Comentário: Exemplos
● Exemplos corretos:
○ Peso <- 78.7 //Este atribui à variável Peso o valor 78.7
○ IMPOSTO <- TOTAL * 0.12 //Calcula 12% do total da venda
○ Nome <- "João da Silva" //Atribui à Nome o valor João da Silva
○ Achei <- FALSO //Atribui à variável Achei o valor FALSO
● Exemplos errados:
○ 2060 <- NumeroAgencia
○ IDADE <- VERDADEIRO
○ NumeroConta + digitoControle <- 2345 + 0
○ NomeCliente + Sobrenome <- “João” | “Silva”
○ var salario: REAL
inicio
salario <- "Insuficiente“
Expressões Lógicas
● São representações das condições que sujeitam a 
execução do algoritmo
● Numa expressão lógica os operadores são lógicos e os 
operandos são relações, constantes e/ou variáveis do tipo 
lógico
Operadores 
Lógicos Relações
não (negação) = (igual a) <> (diferente de)
e (conjunção) > (maior que) < (menor que)
ou (disjunção) >= (maior ou igual) <= (menor ou igual)
Exercício 3 (Nead)
1. Defina se os seguintes nomes 
de variáveis são válidos ou não
❏ 123a
❏ A123
❏ etc.
❏ enquanto
❏ guarda-chuva
❏ salario_liquido
2. Defina os conteúdos das 
variáveis abaixo de acordo com 
seu tipo, assinalando C para 
literal, I p/ inteiro, L p/ lógico e 
N p/ numérico
❏ 5.7
❏ -49
❏ +342
❏ VERDADEIRO
❏ "444"
❏ “FALSO”
3. A partir da declaração seguinte, defina se os comandos de 
atribuição são inválidos ou não
var NOME, COR, TESTE, DIA: caracter
SOMA, NUM: inteiro
Salario: real
X: lógico
❏ NOME <- “5”
❏ SOMA <- NUM + 2 * X
❏ TESTE <- SOMA
❏ NUM <- SOMA
❏ X <- X + 1
❏ X <- (NOME = COR)
❏ Salario <- SOMA * 0.8
4. Quais os valores de SOMA, NOME e TUDO, sendo NUM, 
X, COR, DIA, TESTE e TESTE2 respectivamente 5, 2, 
"AZUL", "TERÇA", FALSO e VERDADEIRO?
❏ NOME <- DIA
❏ SOMA <- (NUM^2/X) + (X + 1)
❏ TUDO <- NÃO ((TESTE OU TESTE2) E (X <> NUM))
5. Construa um algoritmo que divide um número inteiro por 
outro, devolvendo o quociente e o resto
6. Desenvolva um algoritmo que calcule a quantidade de litros 
de combustível e o valor em Real gastos em uma viagem, 
recebendo a distância, o consumo e o preço unitário
Estruturas de Controle
● O comando de controle é o responsável por, em função de 
uma condição, desviar o fluxo de execução do programa
● Condição: uma obrigação que se impõe e se aceita, que 
em computadores é uma expressão booleana cujo 
resultado é um valor lógico
● Decisão: ato ou efeito de decidir, ou seja, de optar, de 
tomar uma decisão, que só pode ser tomada se houver 
uma condição
● Em Portugol, a condição deve estar entre parênteses
● Nos Fluxogramas é usado o símbolo de decisão para 
representar blocos adjacentes de instruções subordinadas 
à condição definida
Operadores Relacionais
● Estabelecem uma 
condição, ou seja, a 
relação lógica entre 
dois elementos
● Realizam a 
comparação entre 
dois operandos ou 
duas expressões e 
resultam em valores 
lógicos 
(VERDADEIRO ou 
FALSO)
Comparações Possíveis
● Os elementos relacionados em uma expressão lógica 
(condição) são representados por relações binárias entre 
variáveis e constantes
Comparação Válida Exemplo
Variável e constante (X = 3)
Variável e variável (A <> B)
Variável e expressão (Y > W + J)
Expressão e expressão (X * 1 <= Y + 4)
Prioridades das Expressões
● O conjunto de operações básicas que estão a seguir 
definem a ordem de prioridade dos três tipos de 
expressões
Prioridade Operador
1ª Aritmético
2ª Relacional
3ª Não
4ª E
5ª Ou
Desvio Condicional Simples
● É processado apenas quando o resultado da condição for verdadeira
● Em diagramas (de Blocos ou Chapin) é importante representar os dois fluxos 
para sim (S) e não (N), deixando clara a ação considerada para a condição 
verdadeira
● Em Portugol são usados os comandos se, entao e fimse, assim
se (<condição>) entao
<instruções a serem executadas se a condição for verdadeira>
fimse
<instruções a serem executadas após a condição e independente desta>
condição
bloco
S
N
Desvio Condicional Composto
● A tomada de decisão composta é tomada tanto quando o resultado 
da condição é verdadeira, como quando é falsa
● Em Portugol são usados os comandos se, entao, senao e fimse. 
Sendo a condição verdadeira, é executada a instrução que estiver 
posicionada logo após a instrução entao; mas sendo falsa é 
executada a instrução que estiver posicionada logo após a 
instrução senao
se (<condição>) entao
<instruções a serem executadas se a condição for verdadeira>
senao
<instruções a serem executadas caso a condição seja falsa>
fimse
<instruções a serem executadas independente da condição>
Desvio Condicional Composto (cont.)
● Em diagramas (de Blocos ou Chapin) são representado os dois fluxos, 
para sim (S) e não (N), deixando claras as ações consideradas para 
as condições verdadeira e falsa
○ Após a tomada de decisão composta, independente do resultado, 
as demais instruções, após o símbolo conector, são executadas
condição
bloco
S
N
bloco
Outras Formas de Desvios Condicionais
São usadas em casos de sucessivas verificações lógicas baseadas em 
diversas condições, sendo possíveis três tomadas de decisões
1. Sequencial: ocorre quando se usa tomadas de decisão simples ou 
composta sucessiva, ou seja, umas após as outras. Em Portugol, a 
estrutura é assim
se (<condição1>) entao
<instruçõesa serem executadas se a condição1 for verdadeira>
fimse
se (<condição2>) entao
<instruções a serem executadas se a condição2 for verdadeira>
senao
<instruções a serem executadas caso a condição2 seja falsa>
fimse
se ...
<instruções a serem executadas independente da condição>
Tomada de Decisão Sequencial
Algoritmo “DefineAprovacao”
Var
// Seção de Declarações das variáveis
 Nota1, Nota2, Nota3, Media : real
Falta : inteiro
Inicio
// Seção de Comandos, procedimento, funções, operadores, etc...
leia (Nota1, Nota2, Nota3, Falta)
Media <- (Nota1 + Nota2 + Nota3) / 3
se (Media >= 6) entao
escreval ("Aprovado por nota")
fimse
se (Falta > 80) entao
escreval ("Reprovado por falta")
fimse
escreval (Media)
fimalgoritmo
Outras Formas de Desvios Condicionais
2. Encadeada simples: casos em que uma determinada ação poderá ser 
executada se um conjunto anterior de instruções ou condições for 
satisfeito, sendo que se a ação for executada, ela poderá ainda 
estabelecer novas condições. Isso significa utilizar uma condição 
dentro de outra condição
○ Este tipo de estrutura poderá possuir diversos níveis de condição, 
sendo chamada de aninhamento ou encadeamento
○ Estrutura de decisão simples encadeada
se (<condição1>) entao
se (<condição2>) entao
<ações executadas se condição1 e condição2 forem verdadeiras>
fimse
fimse
<instruções a serem executadas após as condições>
Tomada de Decisão Encadeada Simples
Algoritmo “DefineAprovacao2”
var
Nota1, Nota2, Nota3, Media : real
Falta : inteiro
inicio
leia (Nota1, Nota2, Nota3, Falta)
Media <- (Nota1 + Nota2 + Nota3) / 3
se (Media >= 6) entao
escreval ("Aprovado por nota")
se (Falta > 80) entao
escreval ("Mas reprovado por falta")
fimse
fimse
escreval (Media)
fimalgoritmo
Outras Formas de Desvios Condicionais
3. Encadeada composta: estrutura de decisão composta encadeada
se (<condição1>) entao
se (<condição2>) entao
<ações executadas se condição1 e condição2 forem 
verdadeiras>
senao
<ação executada se condição1 for verdadeira e condição2 
for falsa>
fimse
senao
<instruções a serem executadas caso a condição1 seja falsa>
fimse
<instruções a serem executadas após as condições>
Tomada de Decisão Encadeada Composta
Algoritmo “DefineAprovacao3”
var
Nota1, Nota2, Nota3, Media : real
Falta: inteiro
inicio
leia (Nota1, Nota2, Nota3, Falta)
Media <- (Nota1 + Nota2 + Nota3) / 3
se (Media >= 6) entao
escreval ("Aprovado por nota")
se (Falta <= 80) entao
escreval ("Aprovado também por presença")
senao
escreval ("Reprovado por falta")
fimse
senao
escreval ("Reprovado por nota")
fimse
escreval (Media)
fimalgoritmo
Outras Formas de Desvios Condicionais
4. Por seleção: é usada nos casos em que há a verificação de cada 
condição da estrutura de decisão, a partir da seleção de uma variável, 
desviando o fluxo para a ação prevista
○ No Diagrama de Blocos após a ação prevista o fluxo é desviado 
para o único conector existente na estrutura
○ Em Portugol são usados os comandos escolha, caso, faca, 
outrocaso e fimescolha, desta maneira
escolha <variável>
caso <opção1> faca
<ação para condição1 verdadeira>
caso <opção2> faca
<ação para condição2 verdadeira>...
outrocaso
<ação para nenhuma condição satisfeita>
fimescolha
Tomada de Decisão por Seleção
Algoritmo “DefineMensao”
var
Nota1, Nota2, Nota3, Media : real
inicio
leia (Nota1, Nota2, Nota3)
Media <- (Nota1 + Nota2 + Nota3) \ 3
escolha Media
caso 0,1,2,3,4,5
escreval ("MI")
caso 6
escreval ("MM")
caso 7,8
escreval ("MS")
outrocaso
escreval ("SS")
fimescolha
escreval (Media)
fimalgoritmo
Exercício 4 (no Nead)
Usando estruturas de decisão, construa algoritmos em Portugol que possibilite:
1. Definir e mostrar o maior de três valores informados
2. Calcular e mostrar a condição a partir do IMC (índice de massa corporal), que 
é um critério para indicar sobre a condição de peso de uma pessoa adulta, 
sabendo que IMC=peso/altura², onde: se for menor que 18,5 está abaixo do 
peso; entre 18,5 e 25 peso está normal; entre 25 e 30 está acima do peso; a 
partir de 30 está obesa
3. Solicitar a entrada de um valor numérico (real) e apresentar mensagens que 
afirmem se o valor numérico é inteiro ou fracionário e se é positivo ou negativo
4. Calcular e mostrar o reajuste de salário de um funcionário, considerando que 
este deverá receber um reajuste de 15%, caso seu salário seja menor que 
500. Se o salário for maior ou igual a 500, mas menor ou igual a 1000, seu 
reajuste será de 10%; caso seja maior que 1000, o reajuste deverá ser de 5%
5. Ler um valor numérico inteiro entre 1 e 12 e apresentar por extenso o nome do 
mês correspondente ao valor recebido. Caso sejam fornecidos valores fora 
deste intervalo, o programa deve indicar que é inválido
Estruturas de Repetição
● Laços ou malhas de repetição (looping)
○ Interativos: quando necessitam de intervenção de usuário
○ Iterativos: executam as repetições previstas de forma 
automática um número de vezes
● Laços de repetição condicional pré-teste, com teste no início
○ Controle condicional verdadeiro: executa as instruções 
subordinadas de um bloco adjacente, repetindo enquanto o 
resultado lógico da condição permanece verdadeiro
○ No Portugol são usados os comandos enquanto, faca e 
fimenquanto
enquanto (<condição>) faca
<instruções executadas durante o período em que a condição 
é verdadeira>
fimenquanto
Laço de repetição condicional pré-teste
Algoritmo “MediaAritmeticaDeAlunos”
var
Nota1, Nota2, Nota3, Media : real
Con : inteiro
inicio
Con <- 0
enquanto (Con <50) faca
leia (Nota1, Nota2, Nota3)
Media <- (Nota1 + Nota2 + Nota3) / 3
escreval ("Média é", Media)
se (Media >= 6) entao
escreval ("Aprovado!")
senao
escreval ("Reprovado!")
fimse
Con <- Con + 1
fimenquanto
fimalgoritmo
Estruturas de Repetição
● Laços de repetição condicional pós-teste, com teste no 
final
○ Controle condicional falso: executa no mínimo uma 
vez as instruções subordinadas de um bloco 
adjacente e repete a execução no período em que o 
resultado lógico da condição permanece falso, 
encerrando quando esta for verdadeira
○ No Portugol usa-se os comandos repita e ate
repita
<instruções executadas durante o período em que a 
condição é verdadeira>
ate (<condição>)
Laço de repetição condicional pós-teste
Algoritmo “MediaAritmeticaDaTurma”
var
Media, Somatorio, MediaTurma : real
Con : inteiro
inicio
Con <- 0
Somatorio <- 0
repita
leia (Media)
Somatorio <- Somatorio + Media
Con <- Con + 1
ate (Con >= 50)
MediaTurma <- Somatorio/Con
escreval ("Média da turma é", MediaTurma)
fimalgoritmo
Estruturas de Repetição
● Laço de repetição incondicional
○ Repete a execução do bloco adjacente um número 
predeterminado de vezes, não prevendo uma condição 
de teste
○ No Portugol usa-se os comandos para, de, ate, passo, 
faca e fimpara
para <variavel> de <inicio> ate <fim> passo <incremento> faca
<instruções executadas durante o ciclo de contagem da 
variável de controle>
fimpara
Laço de Repetição Incondicional
Algoritmo “MediaAritmeticaDaTurma”
var
Media, Somatorio, MediaTurma : real
Con : inteiro
inicio
Somatorio <- 0
para Con de 1 ate 50 passo 1 faca
leia (Media)
Somatorio <- Somatorio + Media
fimpara
MediaTurma <- Somatorio/Con
escreval ("Média da turma é", MediaTurma)
fimalgoritmo
Estruturas de Repetição: Interrupção
● As três estruturas de repetição permitem o uso do 
comando interrompa que causa uma saída imediata do 
laço
● Embora esta técnica esteja em desacordo com os 
princípios da programação estruturada, pode ser 
encontrada na literatura de introdução à programação
● Deve ser usado em situações específicas:
○ de forma temporária
■ paratestes de mesa
■ para o entendimento de um código
○ para correção ou expansão de software legado
Laço de repetição condicional pós-teste: interrupção
Var ...
Inicio
 Contador <- 0
 Somatorio <- 0
 repita
 escreval ("Informe a média do estudante.")
 leia (Media)
 se (Media < 0) entao
 escreval ("A nota média está incorreta.")
 interrompa
 fimse
 Somatorio <- Somatorio + Media
 Contador <- Contador +1
 ate (Contador = 50)
 MediaTurma <- Somatorio / Contador
 escreval ("A média da turma é ", MediaTurma)
Fimalgoritmo
Como evitar interrupção e melhorar a qualidade?
Algoritmo "CalculaMediaTurmaMelhor"
Var
 Media, Somatorio, MediaTurma :real
 Contador, QtdEstudantes :inteiro
Inicio
 Contador <- 0
 Somatorio <- 0
 escreval ("Quantos estudantes tem a turma?")
 leia (QtdEstudantes)
 repita
 escreval ("Informe a média do estudante.")
 leia (Media)
 se (Media < 0) ou (Media > 10) entao
 escreval ("A nota média está incorreta.")
 senao
 Somatorio <- Somatorio + Media
 Contador <- Contador + 1
 fimse
 ate (Contador = QtdEstudantes)
 MediaTurma <- Somatorio / QtdEstudantes
 escreval ("A média da turma é ", MediaTurma)
Fimalgoritmo
Exercício 5 (Nead)
Usando estruturas de repetição, construa algoritmos em Portugol que possibilite:
1. Ler um número inteiro positivo N e imprimir todos os divisores inteiros positivos 
de N. Por exemplo, se entrado o valor 18, o programa deverá retornar 1 2 3 6 9 
18. Caso o valor informado seja nulo ou negativo, avisar isso ao usuário
2. Calcular o fatorial de x (x!). Pela definição, fatorial de 1 (1!) é 1 e fatorial de x é 
o produto de todos os valores positivos deste até 1: x!=x*(x-1)*(x-2)... 1
3. Ler sucessivamente valores numéricos positivos e apresentar ao final o 
somatório, a quantidade de valores lidos e a média. O programa deve finalizar 
quando o usuário fornecer um valor nulo ou negativo
4. Imprimir um menu com 4 opções de pratos na tela, tendo uma quinta opção 
para sair do programa. O programa deve informar cada prato solicitado e 
terminar quando for escolhida a quinta opção, apresentando a quantidade de 
pratos solicitados
5. Calcular a área de uma residência. Deve solicitar o nome, a largura e o 
comprimento de cômodos, apresentando a área (LxC) de cada um seguida de 
uma solicitação para saber se o usuário quer informar outro cômodo. Quando 
a resposta for “N” (não), será apresentada a área total calculada
Vetores
● Vetores são úteis para representar dados compostos que consistem de vários 
itens individuais e similares. Assim um vetor é definido como variável 
composta homogênea unidimensional
● Um vetor consiste de um conjunto finito de objetos (chamados elementos), 
todos do mesmo tipo, que são agrupados continuamente na memória
● Somente o vetor tem um nome simbólico, não os elementos
● Cada elemento é identificado por um índice que denota a posição do 
elemento no vetor. O número de elementos num vetor é denominado sua 
dimensão
● A dimensão de um vetor é fixa e predeterminada, não podendo ser mudada 
durante a execução do programa
● Suponha um vetor para representar a temperatura média brasileira em cada 
estação do ano:
Primavera Verão Outono Inverno
26 35 22 17
Uso de Vetor
● Declaração
○ declare nome_vetor[tamanho] tipo, onde
■ nome é como se denomina a variável do tipo vetor
■ tamanho é a dimensão do vetor (quantidade de variáveis)
■ tipo indica o tipo dos dados que serão armazenados
● Sintaxe no VisualG
○ <nome_variavel>: vetor [posInicial..posFinal] de <tipo>
● Atribuição de valores
○ nome_vetor[ídice] <- conteúdo, onde
■ Deve-se informar em qual das suas posições (índice) o valor ficará 
armazenado
■ conteúdo é o valor, de acordo com o tipo, a ser atribuído à posição 
informada da variável
● Exemplo
V: vetor [1..5] de inteiro
V[1] <- 45
V[4] <- 0
Uso de Vetor
● Preenchimento de um vetor
○ É atribuir valores a todas as suas posições
○ Exemplo
para i de 1 ate 5 faca
escreval(“Informe o “, i, “º número”)
leia(V[i])
fimpara
● Mostrando os elementos de um vetor
○ Implica mostrar os valores em todas as suas posições
○ Exemplo
para i de 1 ate 5 faca
escreva(“Este é o “, i, “º número do vetor: ”)
escreval(V[i])
fimpara
Matrizes
● Uma matriz nada mais é do que um vetor de vetores. É também 
conhecida como variável composta homogênea multidimensional
● Uma variável do tipo matriz precisa de um índice para cada uma das 
suas dimensões
● Por exemplo, suponha que se queira representar as temperaturas 
médias em três cidades brasileiras por estação do ano:
● Pode ser representado por uma matriz de inteiros: 
○ declare TempEstacao[3, 4] int
Primavera Verão Outono Inverno
 Santos 26 34 22 17
 São Paulo 24 32 19 13
 Rio de Janeiro 28 38 25 20
Uso de Matriz
● Declaração
○ declare nome_matriz[dimensão1, dimensão2, …, dimensãoN] 
tipo, onde
■ nome é como se denomina a variável do tipo matriz
■ dimensão1 é a quantidade de elementos da 1ª dimensão 
(conhecida como linha)
■ dimensão2 é a quantidade de elementos da 2ª dimensão 
(conhecida como coluna)
■ dimensão3 é a quantidade de elementos da 1ª dimensão 
(conhecida como profundidade)
■ dimensãoN é a quantidade de elementos da enésima 
dimensão
■ tipo indica o tipo dos dados que serão armazenados
● Sintaxe no VisualG
○ <nome_variavel>: vetor [li..lf, ci..cf] de <tipo>
Uso de Matriz
● Atribuição de valores
○ nome_matriz[dimensão1, dimensão2, …, 
dimensãoN] <- conteúdo, onde
■ Deve-se informar em qual das suas posições 
(índice) o valor ficará armazenado
■ conteúdo é o valor, de acordo com o tipo, a ser 
atribuído à posição informada da variável
● Exemplo
Mat: vetor [1..5,1..4] de inteiro
Mat[1,3] <- 10
Mat[2,4] <- 45
Mat[3,1] <- -8
Uso de Matriz
● Preenchendo uma matriz - exemplo
para I de 1 ate 5 faca
para J de 1 ate 4 faca
escreval(“Informe o número da linha ”, I, “ e coluna “, J)
leia(Mat[I,J])
fimpara
fimpara
● Mostrando os elementos de uma matriz - exemplo
para I de 1 ate 5 faca
para J de 1 ate 4 faca
escreva(“Número da linha ”, I, “ e coluna “, J, “:”)
escreval(Mat[I,J])
fimpara
fimpara
Exercício 6 (no Nead)
A partir do uso de vetores e matrizes, elabore os códigos com VisualG que:
1. Preencha um vetor com seis elementos numéricos inteiros e depois calcule e 
mostre: todos os números pares; e a quantidade de números pares e ímpares
2. Preencha um vetor com dez números reais, calcule e mostre dois vetores 
resultantes, um com valores positivos e outro com os negativos, informando ainda a 
quantidade de números negativos e a soma dos números positivos
3. Leia sucessivamente valores numéricos positivos, armazenando-os em vetor, 
devendo parar quando o usuário fornecer um valor negativo. Ao final deve 
apresentar o somatório e a média desses valores
4. Calcule a área de uma residência, devendo solicitar a quantidade de cômodos, o 
número, a largura e o comprimento de cada cômodo, armazenando em matriz 
essas informações. Ao final deve apresentar:
a. o número de cada cômodo e sua área (largura x altura)
b. o valor total calculado da residência
5. Preencha uma matriz 6 x 5 com valores, some as colunas individualmente e guarde 
os resultados na 7ª linha da matriz, mostrando o resultado de cada coluna
Funções
● É um conjunto de instruções que realizam uma tarefa específica, 
recebendo um nome, pelo qual será referenciado
● Dividem tarefas complexas de computação em partes menores, 
processo conceitualmente denominado modularização
● Também são conhecidas como sub-rotinas ou subprogramas
● A existênciade funções evita que o programador escreva o mesmo 
código mais de uma vez, permitindo assim o reuso destes
● Uma outra razão para se escrever funções é permitir que outros 
programadores as utilizem (reuso)
● Quando uma função é carregada (referenciada), seu código é 
agregado ao programa, que pode usá-la quantas vezes forem 
necessárias
● As funções podem ou não receber e da mesma forma podem ou não 
retornar valores
Declaração Conceitual de Funções (Módulos)
Declaração de Funções
● A declaração deve estar entre o final da declaração de variáveis e a linha inicio 
do programa principal, e segue esta sintaxe:
funcao <nome-de-função> [(<seqüência-de-declarações-de-parâmetros>)]: 
<tipo-de-dado>
// Seção de declarações internas
inicio
// Seção de comandos
fimfuncao
● O <nome-de-função> obedece as mesmas regras de nomenclatura de variáveis
● A <seqüência-de-declarações-de-parâmetros> é uma sequência de: [var] 
<seqüência-de-parâmetros>: <tipo-de-dado> separadas por ponto e vírgula
● A presença (opcional) da palavra-chave var indica passagem de parâmetros 
por referência; caso contrário, a passagem será por valor
● Já a <seqüência-de-parâmetros> é uma sequência de nomes de parâmetros, 
que obedecem a mesma regra de nomenclatura de variáveis, separados por 
vírgulas
Declaração de Funções: Exemplo 1
● Com uma função sem parâmetros, utiliza uma variável aux para armazenar 
provisoriamente o resultado deste cálculo, antes de atribuí-lo à variável res
funcao soma: inteiro
var aux: inteiro // n, m e res são variáveis globais
inicio
aux <- n + m
retorne aux
fimfuncao
● No programa principal há os seguintes comandos:
n <- 4
m <- -9
res <- soma
escreva(res)
● O valor retornado pela função será do tipo especificado na sua declaração, 
logo após os dois pontos. De modo geral no final da função, este valor deve 
ser retornado através do comando retorne
Declaração de Funções: Exemplo 2
● Por meio de uma função com parâmetros faz o mesmo 
cálculo e ainda o retorna o resultado da soma à variável 
res
funcao soma (x,y: inteiro): inteiro
inicio
retorne x + y
fimfuncao
● No programa principal deve haver os seguintes comandos:
n <- 4
m <- -9
res <- soma(n,m)
escreva(res)
Regras de Escopo
● As regras de escopo definem que porção do código conhece ou tem acesso a 
determinados dados ou porção de código
● Governam em que parte do código uma variável pode ser acessada
● As variáveis definidas dentro de uma função só podem ser acessadas na 
função onde foram definidas e são chamadas de variáveis locais
● Variáveis definidas antes de qualquer função podem ser acessadas por 
quaisquer destas e são chamadas de variáveis globais
● O uso de variável global deve ser evitado por tornar mais difícil a manutenção 
dos programas
● Em Portugol:
○ Se o parâmetro for passado por valor, então a variável do cabeçalho será 
local da função
○ Caso seja passado por referência, a variável do cabeçalho se comportará 
como global
Passagem de Parâmetros por Referência
● Neste caso, a função não recebe apenas um valor, mas sim o endereço de 
uma variável global
● Portanto, qualquer modificação que for realizada no conteúdo deste 
parâmetro afetará também a variável global que está associada a ele
● Essa passagem é feita através da palavra var na declaração do parâmetro
● Voltando ao exemplo da soma, este código faz a mesma tarefa usando 
passagem de parâmetros por referência:
funcao soma (x,y: inteiro; var result: inteiro)
inicio
result <- x + y
fimfuncao
● No programa principal deve haver os seguintes comandos:
n <- 4
m <- -9
soma(n,m,res)
escreva(res)
Exercício 7 (no Nead)
Por meio de funções, elabore os códigos em linguagem C que:
1. Receba um valor numérico inteiro entre 1 e 12 e mostre o nome do 
mês correspondente ao valor recebido. Caso sejam fornecidos 
valores diferentes, o programa deve informar que são inválidos (ex. 
4.5)
2. Receba a quantidade de valores inteiros a serem informados e 
armazene em vetor estes valores, devendo avisar quando o valor não 
for válido. Duas funções devem receber o vetor e calcular a soma e 
média dos valores. Ao final, o código principal deve apresentar o 
somatório e a média dos valores
3. Calcule a área de uma residência, devendo receber a quantidade de 
cômodos e armazenar em matriz o número, a largura e o 
comprimento de cada cômodo. Uma função deve calcular e 
apresentar o número e a área de cada cômodo e retornar o valor total 
da área da residência, que deverá ser apresentado ao final (ex. 6.4)
Introdução à Linguagem de Programação C
● Surgiu em 1972, no Lab. Bell, criada por Dennis e Ken 
Thompson
● É aplicável para a programação de qualquer tipo de sistema, 
como é o caso do sistema operacional (SO) Unix
● Após existirem diversas versões, o Ansi estabeleceu, em 
1983, um comitê para definir padrão de implementação desta
● A linguagem C++ é uma extensão desta, cujos incrementos 
dão suporte para a programação orientada a objetos
● Proporciona portabilidade, flexibilidade e padronização de 
códigos, permitindo ao programador bons hábitos de 
programação, de tal forma que viabiliza a construção 
compartilhada de software, em que cada programador pode 
construir bibliotecas de funções separadamente
Criação de um Programa Executável
1. Os códigos em C devem ser compilados. Quando não há erros, 
é criado um arquivo com extensão OBJ, contendo as instruções 
traduzidas
2. Com a agregação das demais funções usadas no programa é 
criado um arquivo com extensão EXE, podendo ser executado 
pelo SO
3. Para estas atividades use o Dev-C++ (compactado) ou 
Code::Blocks
3.1. Digite o código no processador de texto, em modo texto
3.2. Compile o código fonte seguindo as instruções do 
compilador, que criará o arquivo OBJ
3.3. Linkedite o objeto seguindo as instruções do linkeditor, 
gerando o arquivo C
Programa em C: Estrutura Básica
● Possui uma ou mais funções, basicamente assim:
tipo nomeFunc(declaração dos parâmetros)
{
declaração de variáveis;
instrução_2;
…
instrução_n;
return var_tipo;
}
● O menor código em C é:
int main()
{
return 0;
}
Programa em C: Estrutura Geral
● É sensível a letras maiúsculas e minúsculas (case sensitive)
a. Todos os comandos devem ser escritos com letras 
minúsculas
b. Os identificadores como estes são 3 variáveis distintas: char 
letra, Letra, LETRA;
● Todo programa deve conter uma função chamada main(), 
sendo que:
a. os parênteses após main indicam que trata-se de uma 
função
b. int neste caso indica que a função main() deve retornar um 
número inteiro
c. as chaves marcam o início, com {, e o fim, com }
d. cada sentença é finalizada com ponto e vírgula
Palavras Reservadas em C
1. auto
2. break
3. case
4. char
5. const
6. continue
7. default
8. do
9. double
10. else
11. enum
12. extern
13. float
14. for
15. goto
16. if
17. int
18. long
19. register
20. return
21. short
22. signed
23. sizeof
24. static
25. struct
26. switch
27. typedef
28. union
29. unsigned
30. void
31. volatile
32. while
Declaração de Variáveis em C: Tipos
Tipo Memória Valores
char 1 byte -128 a 127
int 2 bytes -32768 a 32767 (em ambientes 
de 32 b é o mesmo que long)
float 4 bytes 6 dígitos de precisão
long 4 bytes -2.147.483.648 a 2.147.483.648
double 8 bytes 10 dígitos de precisão
void 0 Nenhum
Declaração de Variáveis em C
● Todas as variáveis devem ser declaradas antes de serem usadas
● Modificadores de tipo: altera todos os tipos, exceto void
○ long como long double
○ short como short int
○ unsigned para que sejam apenas positivos, como unsigned char -> 
valores de 0 a 255
○ Quando um modificador é usado sem o tipo, então o padrão assumido é 
int, como unsigned-> valores de 0 a 65535
● O tipo void é usado em funções que não retornam valores ou para criar 
ponteiros genéricos
● No tipo char, se o conteúdo puder ser maior que um caracter, usa-se: char 
Nome[30]; // Nome poderá armazenar até 30 caracteres
● Não há uma inicialização implícita na declaração, mas é possível inicializar 
as variáveis globais no momento da declaração
○ Usa-se para isso o operador de atribuição = como:
float sum = 0.0; int bigsum = 0; char ch = 'A';
Declaração de Constantes em C
● Constante: posição nomeada de memória que armazena um valor 
que não pode ser alterado durante a execução do programa, por 
exemplo:
○ const int n=10;
● Também podem ser definidas com a macro define, após os 
includes, onde não se coloca ponto e vírgula, por exemplo:
○ #define n 10
○ #define letra 'A'
○ #define nome "Ana"
● Importante:
○ valores numéricos são atribuídos sem aspas, onde as partes 
inteira e fracionária são separadas por ponto (.)
○ caracteres são representados entre apóstrofos (')
○ string são representadas entre aspas (")
Operações Aritméticas
● As operações aritméticas são representadas pelos mesmos 
símbolos vistos
● Outros operadores aritméticos são os operadores de 
incremento e decremento, representados respectivamente por 
++ e --, como:
○ x++; // x = x + 1
○ y--; // y = y - 1
○ y=++x; // x = x + 1 e y = x
● Suporta também operadores compostos de atribuição, como:
○ n += 9; // n = n + 9
○ n -= 5; // n = n - 5
○ n *= 2; // n = n * 2
○ n /= 2; // n = n / 2
○ n %= y; // n = n % y
Comentários
● Vêm após //
● Podem ser iniciados com /* e finalizados com */
/* Um programa em linguagem C
 Autor AJ */
#include <stdio.h> // Arquivo de cabeçalho (header)
void main()
{ 
 int a, i = 10; char c = 'A'; double d = 0.315155;
 printf("Digite um número inteiro: ");
 scanf("%d", &a); //recebe um inteiro e armazena em a
 printf("a vale %d, i vale %i, c equivale a %c e d vale %g", a, i, 
c, d);
}
Bibliotecas
● Fornecem o restante da funcionalidade da linguagem:
○ Entrada e saída
○ Controle de processos e multiprogramação
○ Comunicação com sistema operacional
○ Matemática
○ Gráficos e multimídia
○ Etc.
● Usar uma biblioteca requer:
○ Inclusão dos headers da biblioteca no programa cliente, por 
meio da diretiva #include
■ Os sinais < e > indicam que o arquivo a ser incluído no 
código antes de ser compilado será procurado somente 
na pasta include
○ “link-edição” da biblioteca com o executável
Entrada e Saída de Dados em C
● As trocas de informação entre o computador e o usuário são chamadas 
entrada e saída (input e output, em inglês), onde entrada é a informação 
fornecida a um programa e saída é a informação fornecida pelo programa
● Frequentemente são usados os termos "saída padrão" (standard output, 
stdout) e "entrada padrão" (standard input, stdin) para referir ao monitor e 
ao teclado, que são os meios básicos de interação com o usuário
● No entanto, os SO permitem redirecionar a saída e a entrada de 
programas para outros dispositivos ou arquivos
● A entrada e saída em C são feitas da mesma maneira, com as mesmas 
funções, não importando o dispositivo com o qual estamos nos 
comunicando (teclado, terminal, arquivo, etc.). 
● As mesmas funções que descrevem o acesso aos arquivos podem ser 
utilizadas para se acessar um terminal de vídeo
● Em C as funções da biblioteca padrão para entrada e saída estão 
declaradas no cabeçalho stdio.h
A função printf()
● Printf vem de "print formatted", sendo usada para exibir 
valores
● Sintaxe básica:
printf(“Mensagem a ser escrita na tela”);
● Também é possível mostrar texto e valores de variáveis 
usando argumentos. Sintaxe:
printf(“Mensagem a ser escrita na tela”, lista de argumentos);
● Exemplo de mensagem que inclui o valor de uma variável:
printf("Total a pagar: R$ %f", total);
○ onde:
○ %f representa o local onde será escrita uma variável float
○ total é a variável float que será mostrada na posição 
marcada por %f
Especificações de Formato
● %d Número decimal inteiro (int)
● %i Número decimal inteiro com sinal
● %u Número decimal natural (unsigned int), ou seja, sem sinal
● %f Número decimal de ponto flutuante. No caso da função printf, devido às 
conversões implícitas da linguagem C, serve tanto para float como para double
● %e Número em notação científica, por exemplo 5.97e-12
● %E Número em notação científica com o "e"maiúsculo, por exemplo 5.97E-12
● %g Escolhe automaticamente entre %f ou %e, o que for menor
● %G Escolhe automaticamente entre %f ou %E, o que for menor
● %c Imprime o caractere com o código ASCII correspondente ao valor dado
● %s Sequência de caracteres (string, em inglês)
● %p Exibe o endereço de memória do ponteiro em notação hexadecimal
● %n Exibe o ponteiro inteiro
● %% Imprime um %
● Modificadores l, h, L:
○ %ld, %li, %lo, %lu e %lx para informar que o tipo associado será long
○ h ou L para informar que o tipo associado será short ou long double
A função scanf()
● É utilizada para fazer a leitura de dados formatados. Sintaxe:
scanf("expressão de controle", lista de argumentos);
● Exemplo:
scanf("%f", &salario);
● Onde é esperada uma variável float (indicada por "%f"). O valor 
lido será armazenado no endereço da variável salário
● Na lista de argumentos devemos indicar os endereços das 
variáveis. Para fazer isso adicionamos o símbolo “&” como 
prefixo na frente do nome da variável
● Importante: ao manipular endereços, é preciso cuidado 
redobrado
scanf ("%d %s %g", &i, &c, &f);
● Nesse caso, scanf espera caracteres em c e não valores!
Printf: Máscara de Dados 
● %.2f define a quantidade de casas 
decimais (2)
● \t insere uma tabulação
● \b (backspace) move para a 
posição anterior
● \n (new line) move para o início da 
próxima linha
● \r (carriage return) move para a 
posição inicial da linha atual
● \a (beep) emite som no auto-falante
● \f salta pg. de formulário
● \0 \’ \” apresentam os caracteres 
que que seguem a \
1. Exemplos de possibilidades:
#include<stdio.h>
main()
{
int a,b;
float c,d;
a = 15;
b = a / 2;
printf("%d\n",b);
printf("%3d\n",b);
printf("%03d\n",b);
c = 15.3;
d = c / 3;
printf("%3.2f\n",d);
}
Printf: Máscara de Dados 
2. Exemplo de outras 
possibilidades:
#include <stdio.h>
#include <conio.h>
int main()
{
printf("\nab");
printf("\bsi");
printf("\rha");
_getch(); // faz pausa
}
3. Exemplo do que pode dar 
errado:
#include <stdio.h>
int main (void)
{
int nr=65;
printf ("Este e um int\t-> %d\n", nr);
printf ("Este e um char\t-> %c\n", 
nr);
printf ("Este e um float\t-> %.2f\n", 
nr);
return 0;
}
Exercício 8 (no Nead)
A partir dos algoritmos e fluxogramas (diagramas de bloco) construídos nos 
exercícios 2 e 3 elabore os códigos em linguagem C que:
1. Receba um nº qualquer e mostre o dobro desse número
2. Receba dois números e informe a soma e o produto destes
3. Divide um número inteiro por outro, devolvendo o quociente e o resto
4. Receba o nome e o salário bruto de um funcionário e imprima o salário 
líquido e o valor do imposto calculado, que é 8% sobre o salário bruto
5. Leia a cotação do Dólar e um valor em Dólares, converta esse valor para 
Real e mostre o resultado
6. Calcule o valor da comissão de vendedores de peças, considerando que 
esta será 5% do total da venda e que serão informados os seguintes 
dados:
a. Identificação do vendedor
b. Código da peça
c. Preço unitário da peça
d. Quantidade vendida
Estrutura de Controle Condicional Simples
● Na estrutura condicional simples a instrução será 
executada se a condição for verdadeira
if (condição)
instrução;
● Quando há mais de uma instrução é preciso usar chaves
if (condição)
{
instrução 1;
instrução 2;
}
Expressões Lógicasem C
● Todas as condições devem estar entre parênteses, 
podendo existir também parênteses para alterar a 
prioridade de execução das condições, como em:
if (X == 5 && (Y == 2 || Y == 3))
printf(“X é igual a 5 e Y é igual a 2 ou Y é igual a 3”);
Operadores Lógicos Relações
&& para conjunção (e) == (igual a) != (diferente de)
|| para disjunção (ou) > (maior que) < (menor que)
! para negação (não) >= (maior ou igual) <= (menor ou igual)
Estrutura de Controle Condicional Composta
● Na estrutura condicional composta a instrução 1 será executada se a 
condição for verdadeira e a instrução 2, se a condição for falsa
if (condição)
instrução 1;
else
instrução 2;
● Quando há mais de uma instrução em cada bloco, é preciso usar chaves:
if (condição)
{
instrução 1;
instrução 2;
}
else
{
instrução 3;
instrução 4;
}
Estrutura de Controle Condicional Seletiva
● A estrutura condicional seletiva é usada quando existem situações 
mutuamente exclusivas, ou seja, apenas uma das várias situações pode ser 
executada
switch (variável)
{
case valor 1:
lista de instruções;
break;
case valor 2:
lista de instruções;
break;
...
default:
lista de instruções;
}
● O break é usado para impedir a execução de instruções nos cases seguintes
● Quando o valor não coincidir com os especificados, será executado o default
Exercício 9 (no Nead)
A partir dos exercícios 3 e 4 elabore estes códigos em C que permitam:
1. Calcular a quantidade litros de combustível e o valor em Real gastos em uma 
viagem, mas incluindo o tratamento de erros
2. Definir e mostrar o maior de três valores
3. Mostrar a condição a partir do IMC, índice de massa corporal, que é um critério 
para indicar a condição de peso de uma pessoa adulta. O IMC=peso/altura², 
onde: se for menor que 18,5, está abaixo do peso; entre 18,5 e 25 peso está 
normal; entre 25 e 30 está acima do peso; a partir de 30 está obeso
4. Solicitar a entrada de um valor numérico inteiro e apresentar mensagem que 
afirme se o valor numérico é ou não inteiro e se é positivo ou negativo
5. Efetuar o cálculo do reajuste de salário de um funcionário, considerando que 
este deverá receber um reajuste de 15%, caso seu salário seja menor que 500. 
Se o salário for maior ou igual a 500, mas menor ou igual a 1000, seu reajuste 
será de 10%; caso seja maior que 1000, o reajuste deverá ser de 5%
6. Ler um valor numérico inteiro entre 1 e 12 e apresentar por extenso o nome do 
mês correspondente ao valor recebido. Caso sejam fornecidos valores 
diferentes, o programa deve indicar que é inválido
Estruturas de Repetição: While
● Pode ser usada quando o número de repetições necessárias 
não for fixo (Laço de repetição condicional pré-teste), tendo este 
formato
while (condição)
instrução;
● Quando há mais de uma instrução em cada bloco, é preciso 
usar chaves
while (condição)
{
instrução 1;
instrução 2;
}
Exemplo 
de While
float Nota1, Nota2, Nota3, Media; 
int Quant, Con=1;
printf("Informe a quantidade de estudantes: \n");
scanf("%d",&Quant);
while (Con <= Quant)
 {
 printf("Informe as três notas: \n");
scanf("%f%f%f",&Nota1, &Nota2, &Nota3);
Media = (Nota1 + Nota2 + Nota3) / 3;
printf("A média do estudante %d é %.2f\n", Con, Media);
if (Media >= 6)
printf("Aprovado!\n");
else
printf("Reprovado!\n");
Con++;
}
Estruturas de Repetição: Do-While
● Pode ser usada quando o número de 
repetições necessárias não for fixo (Laços de 
Repetição Condicional Pós-teste), onde o teste 
condicional ocorre ao final, tendo este formato
do
{
instruções;
}
while (condição);
Exemplo 
de 
Do-While
#include <stdio.h>
main ()
{
 float Media, Somatorio = 0, MediaTurma;
 int Con = 1;
 char Opcao;
 do
 {
printf("Digite a média do estudante %d: \n", Con);
scanf("%f",&Media);
Somatorio = Somatorio + Media;
printf("Quer informar outro estudante? (S/N)\n");
scanf("%s",&Opcao);
Con++;
}
while (Opcao=='S' || Opcao=='s');
MediaTurma = Somatorio/(Con-1);
printf("Média da turma é %.2f\n", MediaTurma);
}
Estruturas de Repetição: For
● É usada quando se sabe o número de vezes que um bloco do 
programa será repetido (Laço de Repetição Incondicional), 
tendo este formato
for (i = valor inicial; condição; incremento/decremento de i )
instrução;
● Quando há mais de uma instrução em cada bloco, é preciso 
usar chaves
for (i = valor inicial; condição; incremento/decremento de i )
{
instrução 1;
instrução 2;
}
Estruturas de Repetição: Exemplos de For
● Exemplo 3
float Media, Somatorio, MediaTurma; 
int Quant, Con;
printf("Informe a quantidade de estudantes: \n");
scanf("%d",&Quant);
for (Con=1; Con <= Quant; Con++)
{
 printf("Digite a média do estudante %d: \n", Con);
scanf("%f",&Media);
Somatorio = Somatorio + Media;
}
MediaTurma = Somatorio/(Con-1);
printf("Média da turma é %.2f\n", MediaTurma);
● Exemplo 1
 for (a = 0; a <= 20; a=a+5)
 printf("\nO valor de a é: 
%d", a);
● Exemplo 2
 int a, x;
 for (a = 15; a >= 1; a -= 2)
 {
 printf("Digite um número: 
");
 scanf("%d", &x);
 printf("%d * %d = %d\n", a, 
x, a*x);
 }
Estruturas de Repetição: Flexibilidade do For
● Qualquer expressão pode conter várias instruções separadas por 
vírgula
 for (i = 0, j = 1; (i+j) < 100; i++, j++)
printf("\n%d", i + j);
● A variável pode ser do tipo char
char ch;
for (ch = 'a'; ch <= 'z'; ch++)
printf("\nO valor ASCII de %c é %d", ch, ch);
● Qualquer uma das expressões do for pode ser omitida, mas os 
ponto-e-vírgulas devem permanecer
int y=0, z=1;
for (; (y+z) < 100; y++, z++)
printf("\n%d", y + z);
● É possível chamar funções dentro de expressões do for...
Exercício 10 (no Nead)
A partir dos algoritmos feitos no exercício 5 elabore os códigos em C que possibilitem:
1. Ler um número inteiro positivo N e imprimir todos os divisores inteiros positivos de 
N. Por exemplo, se entrado o valor 18, o programa deverá retornar 1 2 3 6 9 18. 
Caso o valor informado seja nulo ou negativo, avisar isso ao usuário
2. Calcular o fatorial de x (x!). Pela definição, fatorial de 1 é 1 (1!=1) e fatorial de x é o 
produto de todos os valores positivos deste até 1: x!=x*(x-1)*(x-2)... 1
3. Ler sucessivamente valores numéricos positivos e apresentar ao final o somatório, 
a quantidade de valores lidos e a média. O programa deve finalizar quando o 
usuário fornecer um valor nulo ou negativo
4. Receba 10 números reais, informe os que são positivos, nulos ou negativos, e ao 
final a quantidade de números negativos e a soma dos números positivos
5. Imprimir um menu com 4 opções de pratos na tela, tendo uma quinta opção para 
sair do programa, devendo informar cada prato solicitado e apresentar a 
quantidade de pratos solicitados quando a 5ª opção for escolhida
6. Calcular a área de uma residência. Deve solicitar o nome, a largura (L) e o 
comprimento (C) de cômodos, apresentando a área (LxC) de cada um seguida de 
solicitação para saber se o usuário quer informar outro cômodo. Quando a resposta 
for não (N), será apresentada a área total calculada
Comparativo de Instruções Entre Portugol e C
Portugol C Portugol C Portugol C
interrrompa break fflush(stdin) real float
algoritmo { inicial fim... ...} se if
ate fim_se ; seja case
caso case fimalgoritmo } final repita
e && funcao senao else, default
enquanto while inicio { ou ||
entao inteiro int pausa
escreva printf() leia scanf() var
faca logico verdadeiro
Funções Comumente Usadas em C
● stdio
○ gets(string)
○ printf("Digite um valor:\n")
○ puts(string)
○ scanf("%d",&x)
○ stdlib
○ system(“PAUSE”)
● locale
○ setlocale(LC_ALL,"portuguese")
● conio
○ getch() lê o caractere do 
teclado, mas sem mostrá-lo
○ getche() nãoaceita argumentos 
e devolve o caractere lido
○ clrscr() limpa a tela
● string
○ strcpy (variável, "constante 
string")
● math
○ pow(X,Y): calcula potência XY
Programação para Automação
● Curso: Programação para Automação - Moodle USP
● Curso online gratuito de programação em C
● Programação Progressiva.net
● Programação com Arduino
● Ardublock - Programação Gráfica para Arduino
○ Ardublock | A Graphical Programming Language for 
Arduino
○ Ardublock - Programação Gráfica para Arduino
○ ArduBlock - Programação visual para Arduino
○ Sourceforge - Download
● Lego Mindstorms Education EV3
○ Software
ConectaIF
● Informações
● Credenciamento
● Oficinas do Qualific Express
● Programação
● Incluído como item da 2ª avaliação

Mais conteúdos dessa disciplina