Buscar

Fundamentos de Programação

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 243 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 243 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 243 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

Fund. de
Programac¸a˜o
einstein@ufc.br
Suma´rio
Fundamentos de programac¸a˜o
roteiro de aulas
Albert Einstein Fernandes Muritiba
Universidade Federal do Ceara´ – UFC
30 de julho de 2014
Fund. de
Programac¸a˜o
einstein@ufc.br
Suma´rio
Suma´rio
Mo´dulo I
1 Introduc¸a˜o
2 Linguagem abordada
3 Introduc¸a˜o a Algoritmos
4 Representac¸o˜es de algoritmos
5 Linguagem de Programac¸a˜o
Atribuic¸a˜o e Varia´veis
Entrada / Sa´ıda
Desvio condicional
Loops
6 Erros comuns
7 Exerc´ıcios
8 Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Suma´rio
Suma´rio
Mo´dulo II
9 Func¸o˜es
Introduc¸a˜o
Recursividade
10 Arrays
Alocac¸a˜o Esta´tica
Propriedades dos Arrays em C
Exerc´ıcios Alocac¸a˜o esta´tica
Matrizes
Ponteiros
Alocac¸a˜o Dinaˆmica
11 Strings
12 Arquivos
Introduc¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Introduc¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
• E´ uma ma´quina de fazer contas
• E´ uma ma´quina de processar dados
• E´ uma ma´quina inteligente
• E´ Ma´gica!
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
• E´ uma ma´quina de fazer contas
• E´ uma ma´quina de processar dados
• E´ uma ma´quina inteligente
• E´ Ma´gica!
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
• E´ uma ma´quina de fazer contas
• E´ uma ma´quina de processar dados
• E´ uma ma´quina inteligente
• E´ Ma´gica!
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
• E´ uma ma´quina de fazer contas
• E´ uma ma´quina de processar dados
• E´ uma ma´quina inteligente
• E´ Ma´gica!
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
Voceˆ e´ engenheiro contratado por uma fa´brica de bolos em plena revoluc¸a˜o
industrial.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
Sua tarefa e´ projetar uma ma´quina de fazer bolos de mac¸a˜s.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
O que voceˆ deve saber primeiro?
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
Como fazer um bolo de mac¸a˜s!!!
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
Agora voceˆ esta´ pronto para fazer sua ma´quina. E depois de algumas tentativas ai
esta´:
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
Sua ma´quina recebe mac¸a˜s, ac¸u´car, farinha, manteiga e canela. E produz bolos de
mac¸a˜. Sucesso!!
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
Mas o tempo de mac¸a˜ acabou e agora a fa´brica deve fazer bolos de banana.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
O que fazer?
a) Colocar os ingredientes de bolo de banana na ma´quina e ver o que acontece;
b) Desmontar a ma´quina de bolos de mac¸a˜ e fazer uma outra para bananas;
c) Construir uma ma´quina nova para bolos de banana;
d) Outra ideia?
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜esde algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
Invente uma ma´quina de executar receitas de bolos e na˜o tera´ mas que inventar
nenhuma outra ma´quina de bolos!
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fa´brica de bolos
Nesta ma´quina voceˆ deve fornecer os ingredientes e a receita.
Na˜o e´ uma ma´quina de bolos de bananas ou de mac¸a˜s.
E´ uma ma´quina de executar receitas de bolos!
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
% E´ uma ma´quina de fazer contas
% E´ uma ma´quina de processar dados
% E´ uma ma´quina inteligente
% E´ Ma´gica!
Computador
Uma ma´quina que recebe dados de entrada e um programa, executa este programa
sobre estes dados gerando dados de sa´ıda.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
% E´ uma ma´quina de fazer contas
% E´ uma ma´quina de processar dados
% E´ uma ma´quina inteligente
% E´ Ma´gica!
Computador
Uma ma´quina que recebe dados de entrada e um programa, executa este programa
sobre estes dados gerando dados de sa´ıda.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
% E´ uma ma´quina de fazer contas
% E´ uma ma´quina de processar dados
% E´ uma ma´quina inteligente
% E´ Ma´gica!
Computador
Uma ma´quina que recebe dados de entrada e um programa, executa este programa
sobre estes dados gerando dados de sa´ıda.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
% E´ uma ma´quina de fazer contas
% E´ uma ma´quina de processar dados
% E´ uma ma´quina inteligente
% E´ Ma´gica!
Computador
Uma ma´quina que recebe dados de entrada e um programa, executa este programa
sobre estes dados gerando dados de sa´ıda.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
% E´ uma ma´quina de fazer contas
% E´ uma ma´quina de processar dados
% E´ uma ma´quina inteligente
% E´ Ma´gica!
Computador
Uma ma´quina que recebe dados de entrada e um programa, executa este programa
sobre estes dados gerando dados de sa´ıda.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um computador?
Qual e´ a melhor definic¸a˜o?
% E´ uma ma´quina de fazer contas
% E´ uma ma´quina de processar dados
% E´ uma ma´quina inteligente
% E´ Ma´gica!
Computador
Uma ma´quina que recebe dados de entrada e um programa, executa este programa
sobre estes dados gerando dados de sa´ıda.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
O que e´ um programa de computador?
Sequeˆncia de instruc¸o˜es (comandos) a serem executados por um computador sobre
um conjunto de dados de entrada.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Por queˆ devo saber programar?
• Estat´ısticos devem trabalhar com grande quantidades de informac¸a˜o;
• Operar ferramentas de software para processamento de dados;
• Qualquer manuseio fora do trivial exigira´ conhecimentos em programac¸a˜o;
• Alguns softwares sa˜o operados atrave´s de linguagens de programac¸a˜o
espec´ıficas;
• Exemplos: Matlab, R, Scilab, Macros Excel, ...
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Por queˆ devo saber programar?
• Estat´ısticos devem trabalhar com grande quantidades de informac¸a˜o;
• Operar ferramentas de software para processamento de dados;
• Qualquer manuseio fora do trivial exigira´ conhecimentos em programac¸a˜o;
• Alguns softwares sa˜o operados atrave´s de linguagens de programac¸a˜o
espec´ıficas;
• Exemplos: Matlab, R, Scilab, Macros Excel, ...
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Por queˆ devo saber programar?
• Estat´ısticos devem trabalhar comgrande quantidades de informac¸a˜o;
• Operar ferramentas de software para processamento de dados;
• Qualquer manuseio fora do trivial exigira´ conhecimentos em programac¸a˜o;
• Alguns softwares sa˜o operados atrave´s de linguagens de programac¸a˜o
espec´ıficas;
• Exemplos: Matlab, R, Scilab, Macros Excel, ...
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Por queˆ devo saber programar?
• Estat´ısticos devem trabalhar com grande quantidades de informac¸a˜o;
• Operar ferramentas de software para processamento de dados;
• Qualquer manuseio fora do trivial exigira´ conhecimentos em programac¸a˜o;
• Alguns softwares sa˜o operados atrave´s de linguagens de programac¸a˜o
espec´ıficas;
• Exemplos: Matlab, R, Scilab, Macros Excel, ...
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Por queˆ devo saber programar?
• Estat´ısticos devem trabalhar com grande quantidades de informac¸a˜o;
• Operar ferramentas de software para processamento de dados;
• Qualquer manuseio fora do trivial exigira´ conhecimentos em programac¸a˜o;
• Alguns softwares sa˜o operados atrave´s de linguagens de programac¸a˜o
espec´ıficas;
• Exemplos: Matlab, R, Scilab, Macros Excel, ...
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Que aprenderemos neste curso?
• Conhecimentos ba´sicos sobre algoritmos
• Conhecimentos ba´sicos sobre linguagem C
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Que aprenderemos neste curso?
• Conhecimentos ba´sicos sobre algoritmos
• Conhecimentos ba´sicos sobre linguagem C
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
C ou na˜o C ...
Por queˆ estudar linguagem C
• Linguagem C surgiu no in´ıcio dos anos 70
• Atualmente a segunda linguagem mais popular, segundo a TIOBE
Programming Community Index
• Foi projetada para o desenvolvimento de compiladores e sistemas operacionais
• Na˜o foi feita para ser fa´cil, foi feita para ser ra´pida!
• O programador C deve estar sempre atento aos detalhes
• O programador C na˜o tera´ dificuldades em aprender qualquer outra linguagem
de programac¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
C ou na˜o C ...
Por queˆ estudar linguagem C
• Linguagem C surgiu no in´ıcio dos anos 70
• Atualmente a segunda linguagem mais popular, segundo a TIOBE
Programming Community Index
• Foi projetada para o desenvolvimento de compiladores e sistemas operacionais
• Na˜o foi feita para ser fa´cil, foi feita para ser ra´pida!
• O programador C deve estar sempre atento aos detalhes
• O programador C na˜o tera´ dificuldades em aprender qualquer outra linguagem
de programac¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
C ou na˜o C ...
Por queˆ estudar linguagem C
• Linguagem C surgiu no in´ıcio dos anos 70
• Atualmente a segunda linguagem mais popular, segundo a TIOBE
Programming Community Index
• Foi projetada para o desenvolvimento de compiladores e sistemas operacionais
• Na˜o foi feita para ser fa´cil, foi feita para ser ra´pida!
• O programador C deve estar sempre atento aos detalhes
• O programador C na˜o tera´ dificuldades em aprender qualquer outra linguagem
de programac¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
C ou na˜o C ...
Por queˆ estudar linguagem C
• Linguagem C surgiu no in´ıcio dos anos 70
• Atualmente a segunda linguagem mais popular, segundo a TIOBE
Programming Community Index
• Foi projetada para o desenvolvimento de compiladores e sistemas operacionais
• Na˜o foi feita para ser fa´cil, foi feita para ser ra´pida!
• O programador C deve estar sempre atento aos detalhes
• O programador C na˜o tera´ dificuldades em aprender qualquer outra linguagem
de programac¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
C ou na˜o C ...
Por queˆ estudar linguagem C
• Linguagem C surgiu no in´ıcio dos anos 70
• Atualmente a segunda linguagem mais popular, segundo a TIOBE
Programming Community Index
• Foi projetada para o desenvolvimento de compiladores e sistemas operacionais
• Na˜o foi feita para ser fa´cil, foi feita para ser ra´pida!
• O programador C deve estar sempre atento aos detalhes
• O programador C na˜o tera´ dificuldades em aprender qualquer outra linguagem
de programac¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
C ou na˜o C ...
Por queˆ estudar linguagem C
• Linguagem C surgiu no in´ıcio dos anos 70
• Atualmente a segunda linguagem mais popular, segundoa TIOBE
Programming Community Index
• Foi projetada para o desenvolvimento de compiladores e sistemas operacionais
• Na˜o foi feita para ser fa´cil, foi feita para ser ra´pida!
• O programador C deve estar sempre atento aos detalhes
• O programador C na˜o tera´ dificuldades em aprender qualquer outra linguagem
de programac¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
C ou na˜o C ...
Por queˆ estudar linguagem C
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Algoritmos
Introduc¸a˜o
Algoritmos
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Algoritmos
• Os computadores na˜o sabem o que fazer com os dados
• Algoritmos sa˜o projetados para alterar ou manipular os dados
• Programar e´ basicamente construir algoritmos
• Um bom programador na˜o e´ aquele que conhece os detalhes mais escondidos
de uma linguagem de programac¸a˜o, mas aquele que e´ capaz de projetar e
descrever algoritmos eficientemente
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Algoritmos
• Os computadores na˜o sabem o que fazer com os dados
• Algoritmos sa˜o projetados para alterar ou manipular os dados
• Programar e´ basicamente construir algoritmos
• Um bom programador na˜o e´ aquele que conhece os detalhes mais escondidos
de uma linguagem de programac¸a˜o, mas aquele que e´ capaz de projetar e
descrever algoritmos eficientemente
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Algoritmos
• Os computadores na˜o sabem o que fazer com os dados
• Algoritmos sa˜o projetados para alterar ou manipular os dados
• Programar e´ basicamente construir algoritmos
• Um bom programador na˜o e´ aquele que conhece os detalhes mais escondidos
de uma linguagem de programac¸a˜o, mas aquele que e´ capaz de projetar e
descrever algoritmos eficientemente
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Algoritmos
• Os computadores na˜o sabem o que fazer com os dados
• Algoritmos sa˜o projetados para alterar ou manipular os dados
• Programar e´ basicamente construir algoritmos
• Um bom programador na˜o e´ aquele que conhece os detalhes mais escondidos
de uma linguagem de programac¸a˜o, mas aquele que e´ capaz de projetar e
descrever algoritmos eficientemente
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Algoritmo
Definic¸o˜es
Donald Knuth
An algorithm is a set of rules for getting a specific output from a specific input.
Each step must be so precisely defined that it can be translated into a computer
language and executed by machine.
wikipedia
Um algoritmo e´ uma sequeˆncia finita de instruc¸o˜es bem definidas e na˜o amb´ıguas,
cada uma das quais pode ser executada mecanicamente num per´ıodo de tempo
finito e com uma quantidade de esforc¸o finita.
tecmundo
(...) Em termos mais te´cnicos, um algoritmo e´ uma sequeˆncia lo´gica, finita e
definida de instruc¸o˜es que devem ser seguidas para resolver um problema ou
executar uma tarefa.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Caracter´ısticas
Algoritmo computacional
Finitude
Nu´mero finito e definido de passos. Tambe´m significa que a execuc¸a˜o deve ocorrer em um tempo
finito
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Caracter´ısticas
Algoritmo computacional
Definic¸a˜o
Cada passo ou comando deve ser bem definido, ou seja, o executor do algoritmo deve saber
executar cada passo, sem ambiguidades e gerando sempre o mesmo resultado para um mesmo
estado inicial
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Caracter´ısticas
Algoritmo computacional
Entrada
O algoritmo deve ter uma entrada de dados ou um estado inicial
Sa´ıda
O algoritmo deve gerar uma sa´ıda de dados ou um estado final
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Caracter´ısticas
Algoritmo computacional
Efetividade
O algoritmo deve sempre gerar o resultado esperado. Ser correto
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada/ Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Representac¸o˜es de algoritmos
• Linguagem natural
• Fluxograma
• Pseudo-co´digo
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Representac¸o˜es de algoritmos
• Linguagem natural
• Fluxograma
• Pseudo-co´digo
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Representac¸o˜es de algoritmos
• Linguagem natural
• Fluxograma
• Pseudo-co´digo
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Linguagem natural I
Exemplo
Dispomos de duas vasilhas com capacidades de 9 e 4 litros respectivamente. As
vasilhas na˜o tem nenhum tipo de marcac¸a˜o, de modo que na˜o e´ poss´ıvel ter
medidas como metade ou um terc¸o.
Mostre uma sequeˆncia de passos, que usando as vasilhas de 9 e 4 litros encha uma
terceira vasilha de medida desconhecida com seis litros de a´gua.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Linguagem natural II
Exemplo
1 Encha a vasilha de 9 litros;
2 Usando a vasilha de 9 litros, encha a vasilha de 4 litros;
3 Despeje o que sobrou na vasilha de 9 litros (5 litros) na terceira vasilha. Observe
que falta um litro para completar os seis litros;
4 Esvazie a vasilha de 4 litros;
5 Torne a encher a vasilha de 9 litros;
6 Usando a vasilha de 9 litros encha a vasilha de 4 litros;
7 Esvazie a de 4 litros;
8 Usando o que restou na vasilha de 9 litros (5 litros), encha novamente a vasilha
de quatro litros;
9 Despeje o que sobrou na vasilha de 9 litros (1 litro) na terceira vasilha, que
agora tem 6 litros.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fluxograma
Elementos
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Fluxograma
Exemplo
Calcula raiz de ax+ b = 0, b 6= 0
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Pseudo-co´digo
Pseudoco´digo
E´ uma te´cnica textual de representac¸a˜o de um algoritmo. Tambe´m e´ conhecida
como Portugueˆs Estruturado ou Portugol.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Linguagem de Programac¸a˜o
Linguagem de programac¸a˜o
E´ um conjunto de regras gramaticais de sintaxe e semaˆntica que podem representar
um algoritmo computacional com detalhamento suficiente para a posterior
execuc¸a˜o por um computador.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Sintaxe e Semaˆntica
Sintaxe
Regras gramaticais que definem quais sequeˆncias de termos sa˜o va´lidas para uma
linguagem.
Semaˆntica
Definic¸a˜o de como uma sequeˆncia de uma linguagem deve ser interpretada. Ou
seja, significado de uma sentenc¸a.
Exemplo
3+* x 2 esta´ sintaticamente incorreta.
2 + 3 * x esta´ sintaticamente correta.
A semaˆntica de 2 + 3 * x e´ ...
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Sintaxe e Semaˆntica
Sintaxe
Regras gramaticais que definem quais sequeˆncias de termos sa˜o va´lidas para uma
linguagem.
Semaˆntica
Definic¸a˜o de como uma sequeˆncia de uma linguagem deve ser interpretada. Ou
seja, significado de uma sentenc¸a.
Exemplo
3+* x 2 esta´ sintaticamente incorreta.
2 + 3 * x esta´ sintaticamente correta.
A semaˆntica de 2 + 3 * x e´ ...
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Sintaxe e Semaˆntica
Sintaxe
Regras gramaticais que definem quais sequeˆncias de termos sa˜o va´lidas para uma
linguagem.
Semaˆntica
Definic¸a˜o de como uma sequeˆncia de uma linguagem deve ser interpretada. Ou
seja, significado de uma sentenc¸a.
Exemplo
3+* x 2 esta´ sintaticamente incorreta.
2 + 3 * x esta´ sintaticamente correta.
A semaˆntica de 2 + 3 * x e´ ...
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜oElementos de uma LP
5 elementos ba´sicos
• Entrada
• Sa´ıda
• Atribuic¸a˜o
• Desvio condicional / Selec¸a˜o / Decisa˜o
• Lac¸os / Loop / Repetic¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Elementos de uma LP
5 elementos ba´sicos
• Entrada
• Sa´ıda
• Atribuic¸a˜o
• Desvio condicional / Selec¸a˜o / Decisa˜o
• Lac¸os / Loop / Repetic¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Elementos de uma LP
5 elementos ba´sicos
• Entrada
• Sa´ıda
• Atribuic¸a˜o
• Desvio condicional / Selec¸a˜o / Decisa˜o
• Lac¸os / Loop / Repetic¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Elementos de uma LP
5 elementos ba´sicos
• Entrada
• Sa´ıda
• Atribuic¸a˜o
• Desvio condicional / Selec¸a˜o / Decisa˜o
• Lac¸os / Loop / Repetic¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Elementos de uma LP
5 elementos ba´sicos
• Entrada
• Sa´ıda
• Atribuic¸a˜o
• Desvio condicional / Selec¸a˜o / Decisa˜o
• Lac¸os / Loop / Repetic¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Atribuic¸a˜o
Escrever valor em uma varia´vel
Devemos conhecer os conceitos de :
• Memo´ria – Dispositivo de armazenamento de dados do computador
• Varia´vel – Abstrac¸a˜o da memo´ria em um programa
• Identificador – Nome da varia´vel
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Atribuic¸a˜o
Escrever valor em uma varia´vel
Devemos conhecer os conceitos de :
• Memo´ria – Dispositivo de armazenamento de dados do computador
• Varia´vel – Abstrac¸a˜o da memo´ria em um programa
• Identificador – Nome da varia´vel
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Atribuic¸a˜o
Escrever valor em uma varia´vel
Devemos conhecer os conceitos de :
• Memo´ria – Dispositivo de armazenamento de dados do computador
• Varia´vel – Abstrac¸a˜o da memo´ria em um programa
• Identificador – Nome da varia´vel
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Varia´veis
• As informac¸o˜es do seu programa sa˜o armazenadas em varia´veis
• Varia´veis sa˜o abstrac¸o˜es da memo´ria do computador
• Uma varia´vel corresponde a um enderec¸o na memo´ria RAM
• Nem todas as linguagens vinculam tipos a uma varia´vel
• Pseudo-co´digo e C vinculam tipos
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Varia´veis
• As informac¸o˜es do seu programa sa˜o armazenadas em varia´veis
• Varia´veis sa˜o abstrac¸o˜es da memo´ria do computador
• Uma varia´vel corresponde a um enderec¸o na memo´ria RAM
• Nem todas as linguagens vinculam tipos a uma varia´vel
• Pseudo-co´digo e C vinculam tipos
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Varia´veis
• As informac¸o˜es do seu programa sa˜o armazenadas em varia´veis
• Varia´veis sa˜o abstrac¸o˜es da memo´ria do computador
• Uma varia´vel corresponde a um enderec¸o na memo´ria RAM
• Nem todas as linguagens vinculam tipos a uma varia´vel
• Pseudo-co´digo e C vinculam tipos
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Varia´veis
• As informac¸o˜es do seu programa sa˜o armazenadas em varia´veis
• Varia´veis sa˜o abstrac¸o˜es da memo´ria do computador
• Uma varia´vel corresponde a um enderec¸o na memo´ria RAM
• Nem todas as linguagens vinculam tipos a uma varia´vel
• Pseudo-co´digo e C vinculam tipos
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Varia´veis
• As informac¸o˜es do seu programa sa˜o armazenadas em varia´veis
• Varia´veis sa˜o abstrac¸o˜es da memo´ria do computador
• Uma varia´vel corresponde a um enderec¸o na memo´ria RAM
• Nem todas as linguagens vinculam tipos a uma varia´vel
• Pseudo-co´digo e C vinculam tipos
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜esde algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Tipos
Tipos de varia´veis
Pseudo-co´digo
Inteiros; Reais; Texto; Caractere; Lo´gico;
Linguagem C
int (e variac¸o˜es), float (e variac¸o˜es) e char . Voltaremos a falar sobre tipos da
linguagem C em breve. tipos em C
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Tipos
Tipos de varia´veis
Pseudo-co´digo
Inteiros; Reais; Texto; Caractere; Lo´gico;
Linguagem C
int (e variac¸o˜es), float (e variac¸o˜es) e char . Voltaremos a falar sobre tipos da
linguagem C em breve. tipos em C
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Tipos
Tipos de varia´veis
Pseudo-co´digo
Inteiros; Reais; Texto; Caractere; Lo´gico;
Linguagem C
int (e variac¸o˜es), float (e variac¸o˜es) e char . Voltaremos a falar sobre tipos da
linguagem C em breve. tipos em C
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Atribuic¸a˜o
Escrever valor em uma varia´vel
Pseudo-co´digo:
1 x← 10;
Linguagem C:
1 x = 10;
Leia:
”X recebe 10”
Na˜o Leia:
”X igual a 10”
Pode causar confusa˜o
Outros operadores
Linguagem C possui outros operadores de
atribuic¸a˜o. Atribuic¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Atribuic¸a˜o
Escrever valor em uma varia´vel
Pseudo-co´digo:
1 x← 10;
Linguagem C:
1 x = 10;
Leia:
”X recebe 10”
Na˜o Leia:
”X igual a 10”
Pode causar confusa˜o
Outros operadores
Linguagem C possui outros operadores de
atribuic¸a˜o. Atribuic¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Expresso˜es
• Expresso˜es matema´ticas devem ser escrita em texto puro
• Use apenas pareˆnteses
• Expressa˜o matema´tica
x2+3∗(2+5)
4+{60−2+[x−(2+y)]∗3}
• Expressa˜o em texto puro
(x ∗ x+ 3 ∗ (2 + 5))/(4 + (60− 2 + (x− (2 + y)) ∗ 3))
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Expresso˜es
• Expresso˜es matema´ticas devem ser escrita em texto puro
• Use apenas pareˆnteses
• Expressa˜o matema´tica
x2+3∗(2+5)
4+{60−2+[x−(2+y)]∗3}
• Expressa˜o em texto puro
(x ∗ x+ 3 ∗ (2 + 5))/(4 + (60− 2 + (x− (2 + y)) ∗ 3))
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Expresso˜es
• Expresso˜es matema´ticas devem ser escrita em texto puro
• Use apenas pareˆnteses
• Expressa˜o matema´tica
x2+3∗(2+5)
4+{60−2+[x−(2+y)]∗3}
• Expressa˜o em texto puro
(x ∗ x+ 3 ∗ (2 + 5))/(4 + (60− 2 + (x− (2 + y)) ∗ 3))
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Expresso˜es
• Expresso˜es matema´ticas devem ser escrita em texto puro
• Use apenas pareˆnteses
• Expressa˜o matema´tica
x2+3∗(2+5)
4+{60−2+[x−(2+y)]∗3}
• Expressa˜o em texto puro
(x ∗ x+ 3 ∗ (2 + 5))/(4 + (60− 2 + (x− (2 + y)) ∗ 3))
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Expresso˜es
• Expresso˜es matema´ticas devem ser escrita em texto puro
• Use apenas pareˆnteses
• Expressa˜o matema´tica
x2+3∗(2+5)
4+{60−2+[x−(2+y)]∗3}
• Expressa˜o em texto puro
(x ∗ x+ 3 ∗ (2 + 5))/(4 + (60− 2 + (x− (2 + y)) ∗ 3))
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Expresso˜es
• Expresso˜es matema´ticas devem ser escrita em texto puro
• Use apenas pareˆnteses
• Expressa˜o matema´tica
x2+3∗(2+5)
4+{60−2+[x−(2+y)]∗3}
• Expressa˜o em texto puro
(x ∗ x+ 3 ∗ (2 + 5))/(4 + (60− 2 + (x− (2 + y)) ∗ 3))
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Expresso˜es
Operadores
Operadores Pseudo-co´digo C
Atribuic¸a˜o ← =
Aritme´ticos +,−, /, ∗ +,−, /, ∗
Resto da divisa˜o mod %
Raiz
√
4 sqrt(4)
Poteˆncia 35 pow(3,5)
Relacionais <,>,= <,>,==
Relacionais ≤,≥, 6= <=, >=, ! =
Lo´gicos e, ou, na˜o && , ‖, !
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıdaDesvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Sa´ıda
Escrevendo mensagem na tela
Pseudo-co´digo:
1 Escreva ”Ola´ mundo! ”;
2 Escreva ”O valor de x e´ ”, x;
Linguagem C:
1 printf("Ola mundo!");
2 printf("O valor de x eh %d",x);
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Entrada
Ler valor do teclado
Pseudo-co´digo:
1 Leia x;
Linguagem C:
1 int x;
2 scanf("%d" ,&x);
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Bloco de comandos
Bloco de Comandos
E´ um u´nico comando (Escreva, Leia, Atribua, etc.) ou uma sequeˆncia de blocos de
comandos delimitados por delimitadores de bloco.
Delimitador de bloco
Na linguagem C se usa: { }
Em pseudo-co´digo se costuma usar: Inı´cio, Fim
Algumas linguagem usam a Indentac¸a˜o para indicar os blocos. Na˜o e´ o caso da C
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Se ... Enta˜o...
Desvio condicional
Pseudo-co´digo:
1 se x = 0 enta˜o
2 x← 1;
3 fim se
Linguagem C:
1 if( x == 0){
2 x = 1;
3 }
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Se ... Enta˜o ... Sena˜o ...
Desvio condicionals
Pseudo-co´digo:
1 se x = 0 enta˜o
2 x← 1;
3 sena˜o
4 x← 2
5 fim se
Linguagem C:
1 if( x == 0){
2 x = 1;
3 }else{
4 x = 2;
5 }
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Enquanto ... Fac¸a.
Loop
Pseudo-co´digo:
1 enquanto x ≤ 10 fac¸a
2 x← x+ 1;
3 fim enqto
Linguagem C:
1 while(x <= 10){
2 x = x+1;
3 }
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Enquanto ... Fac¸a/ Repita ... ate´
Loop
Pseudo-co´digo:
1 repita
2 x← x+ 1;
3 ate´ x > 10;
Linguagem C:
1 do{
2 x = x+1;
3 }while(x <= 10);
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Para ... Fac¸a ...
Loop
Pseudo-co´digo:
1 para x← 1 ate´ 100 hacer
2 Escreva x;
3 fin para
Linguagem C:
1 for(x=1; x <=100; x=x+1){
2 printf(" %d\n",x);
3 }
A estrutura for da linguagem C e´
bastante flex´ıvel. Voltaremos a falar dela
em seguida. Iterac¸a˜o
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Erros comuns
todos erram = vai cair na prova
• Esquecer de colocar “ ; ” onde deve:
1 printf("acho q esqueci de algo ,\n")
2 printf ("o programa nao quer compilar .\n");
• Colocar “ ; ” onde na˜o deve:
1 if(1 == 2);
2 printf("Isso nao deveria ser escrito na tela\n");
3 printf ("Socorro !\n");
• Colocar “ = ” no lugar de “ == ” :
1 if(x = 2)
2 printf("Tem algo errado aqui.\n");
• Se perder nas chaves e parenteses:
1 if(x==1){if(y==3){while(z <= 10){
2 if(z % 2 == 0)
3 c = c +1;
4 }}}//sera q coloquei chaves suficientes ?
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Erros comuns
todos erram = vai cair na prova
• Esquecer de colocar “ ; ” onde deve:
1 printf("acho q esqueci de algo ,\n")
2 printf ("o programa nao quer compilar .\n");
• Colocar “ ; ” onde na˜o deve:
1 if(1 == 2);
2 printf("Isso nao deveria ser escrito na tela\n");
3 printf ("Socorro !\n");
• Colocar “ = ” no lugar de “ == ” :
1 if(x = 2)
2 printf("Tem algo errado aqui.\n");
• Se perder nas chaves e parenteses:
1 if(x==1){if(y==3){while(z <= 10){
2 if(z % 2 == 0)
3 c = c +1;
4 }}}//sera q coloquei chaves suficientes ?
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Erros comuns
todos erram = vai cair na prova
• Esquecer de colocar “ ; ” onde deve:
1 printf("acho q esqueci de algo ,\n")
2 printf ("o programa nao quer compilar .\n");
• Colocar “ ; ” onde na˜o deve:
1 if(1 == 2);
2 printf("Isso nao deveria ser escrito na tela\n");
3 printf ("Socorro !\n");
• Colocar “ = ” no lugar de “ == ” :
1 if(x = 2)
2 printf("Tem algo errado aqui.\n");
• Se perder nas chaves e parenteses:
1 if(x==1){if(y==3){while(z <= 10){
2 if(z % 2 == 0)
3 c = c +1;
4 }}}//sera q coloquei chaves suficientes ?
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Erros comuns
todos erram = vai cair na prova
• Esquecer de colocar “ ; ” onde deve:
1 printf("acho qesqueci de algo ,\n")
2 printf ("o programa nao quer compilar .\n");
• Colocar “ ; ” onde na˜o deve:
1 if(1 == 2);
2 printf("Isso nao deveria ser escrito na tela\n");
3 printf ("Socorro !\n");
• Colocar “ = ” no lugar de “ == ” :
1 if(x = 2)
2 printf("Tem algo errado aqui.\n");
• Se perder nas chaves e parenteses:
1 if(x==1){if(y==3){while(z <= 10){
2 if(z % 2 == 0)
3 c = c +1;
4 }}}//sera q coloquei chaves suficientes ?
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Erros comuns
todos erram = vai cair na prova
• Achar que C e´ uma linguagem declarativa:
1 delta = b*b - 4*a*c; // estou definindo delta
2 scanf(" %lf %lf %lf",&a, &b, &c);// estou lendo os valores de a, b,
c
3 printf("O valor de delta eh: %lf \n",delta);// pq nao escreve o
valor correto?
• Trocar os caracteres de codificac¸a˜o de entrada e sa´ıda (“%d , %f, %lf ,
etc.”)
1 double a, b;
2 scanf(" %d %d " ,&a, &b);
3 c = a+b;
4 printf("A soma eh: %lf \n",c);//nao consigo nem fazer uma soma ?
• Trocar “ \ ” por “/”
1 printf("c = %lf /n",c); //Ops!
• Vai tentar escrever alguma mensagem no scanf :
1 scanf("digite o valor para x: %lf \n",x);
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Erros comuns
todos erram = vai cair na prova
• Achar que C e´ uma linguagem declarativa:
1 delta = b*b - 4*a*c; // estou definindo delta
2 scanf(" %lf %lf %lf",&a, &b, &c);// estou lendo os valores de a, b,
c
3 printf("O valor de delta eh: %lf \n",delta);// pq nao escreve o
valor correto?
• Trocar os caracteres de codificac¸a˜o de entrada e sa´ıda (“%d , %f, %lf ,
etc.”)
1 double a, b;
2 scanf(" %d %d " ,&a, &b);
3 c = a+b;
4 printf("A soma eh: %lf \n",c);//nao consigo nem fazer uma soma ?
• Trocar “ \ ” por “/”
1 printf("c = %lf /n",c); //Ops!
• Vai tentar escrever alguma mensagem no scanf :
1 scanf("digite o valor para x: %lf \n",x);
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Erros comuns
todos erram = vai cair na prova
• Achar que C e´ uma linguagem declarativa:
1 delta = b*b - 4*a*c; // estou definindo delta
2 scanf(" %lf %lf %lf",&a, &b, &c);// estou lendo os valores de a, b,
c
3 printf("O valor de delta eh: %lf \n",delta);// pq nao escreve o
valor correto?
• Trocar os caracteres de codificac¸a˜o de entrada e sa´ıda (“%d , %f, %lf ,
etc.”)
1 double a, b;
2 scanf(" %d %d " ,&a, &b);
3 c = a+b;
4 printf("A soma eh: %lf \n",c);//nao consigo nem fazer uma soma ?
• Trocar “ \ ” por “/”
1 printf("c = %lf /n",c); //Ops!
• Vai tentar escrever alguma mensagem no scanf :
1 scanf("digite o valor para x: %lf \n",x);
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Erros comuns
todos erram = vai cair na prova
• Achar que C e´ uma linguagem declarativa:
1 delta = b*b - 4*a*c; // estou definindo delta
2 scanf(" %lf %lf %lf",&a, &b, &c);// estou lendo os valores de a, b,
c
3 printf("O valor de delta eh: %lf \n",delta);// pq nao escreve o
valor correto?
• Trocar os caracteres de codificac¸a˜o de entrada e sa´ıda (“%d , %f, %lf ,
etc.”)
1 double a, b;
2 scanf(" %d %d " ,&a, &b);
3 c = a+b;
4 printf("A soma eh: %lf \n",c);//nao consigo nem fazer uma soma ?
• Trocar “ \ ” por “/”
1 printf("c = %lf /n",c); //Ops!
• Vai tentar escrever alguma mensagem no scanf :
1 scanf("digite o valor para x: %lf \n",x);
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios I
Hora de praticar
Implemente um programa que:
1 escreve na tela a frase “O primeiro programa a gente nunca esquece!”.
2 mostre na tela algumas frases assassinas, que sa˜o aquelas que fazem com muitas
ideias sejam perdidas antes que amadurec¸am ou seja aprofundadas. Eis alguns
exemplos (bole tambe´m os seus):
• “Isto na˜o vai dar certo”
• “Voceˆ nunca vai conseguir”
• “Voceˆ vai se estrepar”
• “Na˜o vai dar em nada”
• “Esta´ tudo errado!”
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios II
Hora de praticar
3 escreva a sa´ıda:
ALUNO(A) NOTA
======== ======
ALINE 10
MA´RIO 8.5
SE´RGIO 9
SHIRLEY 9.7
4 mostre o seguinte menu na tela:
Cadastro de Clientes
1 - Fim
2 - Inclui
3 - Altera
4 - Exclui
5 - Consulta
Opc¸~ao:
5 leia dois inteiros do teclado e escreva a soma destes valores.
6 leia treˆs nu´meros reais do teclado e escreva o valor do maior deles.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios III
Hora de praticar
7 leia treˆs valores reais do teclado e escreva a me´dia.
8 leia treˆs valores reais do teclado e escreva a mediana.
9 mostre na tela o resultado de cada expressa˜o e confira seus ca´lculos.
• √2 ∗ 5, 3
• 2 408+2
• 3∗(2+(8,3−5)∗(−12))
1+0,002
• 50 mod 3 + 2
• 7 ∗ 8 + 6/4 + 1 ∗ 3− 2
10 Reescreva os trechos de programa abaixo, usando linguagem C:
a)
1 se x = 0 enta˜o
2 x← 1;
3 y ← 30, 2;
4 fim se
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios IV
Hora de praticar
b)
1 se x = 0 enta˜o
2 x← 1;
3 sena˜o
4 x← 2;
5 fim se
c)
1 enquanto x ≥ 0 fac¸a
2 x← x− 1;
3 fim enqto
4 x← 2;
d)
1 repita
2 x← x5;
3 ate´ x 6= 10;
Fund. de
Programac¸a˜o
einstein@ufc.brIntroduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios V
Hora de praticar
e)
1 para i← a ate´ b hacer
2 Escreva i2;
3 fin para
f)
1 para i← a ate´ b hacer
2 Escreva i;
3 se i mod 2 = 0 enta˜o
4 Escreva: “ i e´ par”;
5 sena˜o
6 enquanto i ≥ a2 fac¸a
7 i← i− 1;
8 fim enqto
9 fim se
10 fin para
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios VI
Hora de praticar
11 O pseudo-co´digo abaixo calcula o somato´rio
∑b
i=a i, reescreva-o em linguagem
C.
1 Leia: a, b;
2 para i← a ate´ b hacer
3 soma← soma+ i;
4 fin para
5 Escreva: “ o valor da soma e´ ”, soma;
12 leia o raio e escreva a a´rea do ciclo.
13 leia o raio e escreva o volume da esfera.
14 calcule a a´rea de um trape´zio.
15 leia valores para a, b e c e calcule as ra´ızes reais da equac¸a˜o ax2 + bx+ c = 0.
16 leia uma temperatura em graus Ce´lcios e escreva em Fahrenheit.
17 leia uma temperatura em graus Fahrenheit e escreva em Ce´lcios.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios VII
Hora de praticar
18 “adivinha” o nu´mero pensado por uma pessoa (Pense um nu´mero (pausa),
multiplique por 2 (pausa), some 6 ao resultado (pausa), divida o
resultado por 2, quanto deu? (informe o resultado), voce^ pensou
o nu´mero tal).[Dica: Para a sequeˆncia proposta, a expressa˜o e´ (sendo n o nu´mero pensado e R o
resultado): (n ∗ 2 + 6)/2 = R, onde n = (R ∗ 2− 6)/2 = R− 3. Ou seja, basta subtrair 3 do resultado
fornecido pela pessoa para “adivinhar”o nu´mero].
19 converta cent´ımetros em polegadas e visse-versa.
20 de menu que mostra na tela, sob o t´ıtulo de ”Menu Principal”, treˆs opc¸o˜es: ”1 -
Fim”, ”2 - Cadastro”e ”3 - Consulta”, leˆ do teclado a opc¸a˜o desejada pelo
usua´rio e mostra uma mensagem confirmando a opc¸a˜o escolhida ou uma
mensagem de erro, se a opc¸a˜o for inva´lida.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios VIII
Hora de praticar
21 elaborar uma questa˜o de mu´ltipla escolha, de uma disciplina que esteja cursando
ou um tema de interesse, com um enunciado e cinco alternativas, sendo uma
correta ou incorreta. Escrever um programa que mostra a questa˜o na tela, pede
a resposta correta e informa ao usua´rio se este acertou ou errou.
22 leˆ dois nu´meros quaisquer e mostra na tela uma mensagem indicando qual e´ o
maior, ou se sa˜o iguais.
23 leˆ dois nu´meros e efetua uma divisa˜o, mas somente se o divisor for diferente de
zero; quando isto ocorrer, e´ mostrada uma mensagem de erro apropriada.
24 leˆ uma disciplina e respectiva nota final, e informa o que ocorreu. Se a nota for
de 7 a` 10, aprovado; se 4 a` menor que 7, AF e, caso contra´rio, reprovado.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios IX
Hora de praticar
25 usando loops escreve o pro´ximo sucesso pop-sertanejo:
RA RA RA TU TU TU RA RA RA TU TU TU RA RA RA TU TU TU
RA RA RA TU TU TU RA RA RA TU TU TU RA RA RA TU TU TU
RA RA RA TU TU TU RA RA RA TU TU TU RA RA RA TU TU TU
RA RA RA TU TU TU RA RA RA TU TU TU RA RA RA TU TU TU
RA RA RA TU TU TU RA RA RA TU TU TU RA RA RA TU TU TU
26 Agora fac¸a o mesmo para a versa˜o acu´stica:
RA RA RA TU TU TU RA RA RA TU TU TU RA RA RA TU TU TU
RA RA TU TU RA RA TU TU RA RA TU TU
RA TU RA TU RA TU
27 leia o valor de n e escreva as sequeˆncias:
a) 1, 2, 3, 4, ..., n
b) n, ..., 3, 2, 1
c) 1, 1, 2, 1, 2, 3, 1, 2, 3, 4, ... 1, 2, 3, 4, ..., n
d) 1, n, 2, n− 1, 3, n− 2, ..., n− 2, 3, n− 1, 2, n, 1
28 para cada sequeˆncia da questa˜o anterior, escreva o nu´mero de elementos, a soma
destes elementos e a me´dia destes elementos.
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios X
Hora de praticar
29 leˆ n, em seguida leˆ n nu´meros reais e no final escreva o maior, o menor, a soma e
a me´dia destes nu´meros.
30 Qual o valor final de c nos programas abaixo:
a)
1 c← 0;
2 para i← 1 ate´ 10 hacer
3 c← c+ 2;
4 fin para
b)
1 c← 0;
2 para i← 1 ate´ 10 hacer
3 para j ← 1 ate´ 34 hacer
4 c← c+ 1;
5 fin para
6 fin para
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios XI
Hora de praticar
c)
1 c← 0;
2 para i← 1 ate´ 10 hacer
3 para j ← 1 ate´ i hacer
4 c← c+ 1;
5 fin para
6 fin para
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Exerc´ıcios XII
Hora de praticar
31 Implemente em C o programa abaixo:
1 Var: x, y, p, z, f :Inteiro;
2 inicio
3 Leia x, y ;
4 p← x;
5 z ← y;
6 f ← 1;
7 enquanto z > 0 fac¸a
8 se z mod 2 = 1 enta˜o
9 f ← f ∗ p;
10 fim se
11 p← p ∗ p;
12 z ← z ÷ 2;
13 fim enqto
14 Escreva f ;
15 fin
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos
Representac¸o˜es
de algoritmos
Linguagem de
Programac¸a˜o
Atribuic¸a˜o e
Varia´veis
Entrada / Sa´ıda
Desvio
condicional
Loops
Erros comuns
Exerc´ıcios
Linguagem C
Introduc¸a˜o
Tipos de dados
Entrada/Sa´ıda
Selec¸a˜o
Atribuic¸a˜o
Iterac¸a˜o
Linguagem C
Primeiros passos
Ken Thompson e Dennis Ritchie
Fund. de
Programac¸a˜o
einstein@ufc.br
Introduc¸a˜o
Linguagem
abordada
Introduc¸a˜o a
Algoritmos

Outros materiais