2. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
• MBA em Arquitetura de Soluções pela FIAP.
• Graduado em Gestão em Tecnologia da Informação pela UNIP.
• 20 anos de experiência na área de Informática.
• 15 anos de experiência com desenvolvimento em Java.
• Sun Certified Programmer for the Java Platform (SCJP).
• Desenvolvimento e arquitetura de aplicações em várias áreas.
• Experiência profissional com várias linguagens e ferramentas de
desenvolvimento Java.
• Atualmente envolvido em projetos com BigData e FastData.
Prof. Thomás da Costa
3. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
https://www.facebook.com/ProfThomasDaCosta
https://br.linkedin.com/in/thomasdacosta
http://pt.slideshare.net/thomasdacosta
thomascosta@aedu.com
https://github.com/thomasdacosta
Prof. Thomás da Costa
https://professorthomasdacosta.wordpress.com
4. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
• Já pensou, como são feitos os principais programas que utilizamos?
• Windows que utilizamos, como é feito?
• Os aplicativos de celulares como Facebook, Whatsapp e Clash of Clans,
precisaram de quantas pessoas para desenvolver?
• Jogos de Playstation e Xbox como são feitos?
Esses programas são feitos a partir de outros programas !!!
Isso mesmo: programas que fazem programas.
Mas os programas precisam ser feitos a partir de uma linguagem, na qual
escrevemos comandos e ações, conhecidos como algoritmos.
O que é Algoritmos e Técnicas de Programação?
Pense nisso:
Vamos entender melhor a seguir !!!
5. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
O que é Algoritmos e Técnicas de Programação?
Programador/Desenvolvedor. Que gera um aplicativo para
celular, jogo ou um site da
internet.
Escreve algoritmos em uma linguagem.
Nossa disciplina entra nesta
etapa, na qual vamos aprender
uma linguagem e estudar
algoritmos para desenvolver
um programa.
6. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
É a disciplina onde vamos aprender a desenvolver aplicações, a partir de uma
linguagem de programação. Em Algoritmos e Técnicas de Programação, iremos
estudar o básico da criação de aplicações, ou seja, é o alicerce para se tornar
um programador ou desenvolvedor.
O que é Algoritmos e Técnicas de Programação?
Definição:
= Programador ou Desenvolvedor cria
aplicações para computadores, celulares,
jogos e sites de internet.
7. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
• Uma linguagem de programação.
• Vamos estudar algoritmos.
• O básico para criar programas de computador.
• Aplicações simples de calcular média, somar números e criar uma
calculadora.
• Não iremos criar aplicações mais complexas, mas é o básico para iniciar a
carreira de programador.
• Nossas aplicações serão desenvolvidas sem interface gráfica para o usuário,
pois não é o escopo dessa matéria.
O que vamos aprender
Onde tudo começa:
8. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
• Melhorar a lógica.
• Adquire conhecimento em outras áreas.
• A profissão de Programador é uma das mais requisitadas.
• Tem bons salários no mercado.
• É possível fazer qualquer tipo de programa como jogos, sites e etc.
• O Programador é o Rei !!!
Por que aprender Algoritmos e Técnicas de Programação
Pesquisa de emprego no site
Linkedin, mais de 1000 vagas
para programador
9. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
PEA
APRESENTAÇÃO
• Plano de Ensino e Aprendizagem.
• Conteúdo programático.
• Contém as aulas separadas por semana.
• Mostra as bibliografias.
• PLT
10. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Fundamentos a Algoritmos e as Linguagens de Programação
- Definição de algoritmos e exemplos. Formas de representação de algoritmos : descrição narrativa, pseudocódigo e
fluxograma
- Definição de variáveis, regras de nomenclatura de variáveis, definição de tipos de dados
- Definição de operadores matemáticos, relacionais e lógicos e comando de atribuição
- Definição dos comandos de entrada/saída
Estruturas de Controle
- Definição do comando de seleção IF-ELSE
- Definição do comando de seleção SWITCH-CASE
- Definição do comando de repetição FOR
- Definição do comando de repetição WHILE/DO-WLHILE
Estruturas de Dados Homogêneas
- Definição da estrutura de dado homogênea unidimensional - vetor e suas operações e aplicações
- Definição da estrutura de dado homogênea unidimensional - vetor e suas operações e aplicações na prática
- Definição da estrutura de dado homogênea unidimensional - matriz e suas operações e aplicações
- Definição da estrutura de dado homogênea unidimensional - matriz e suas operações na prática
Estruturas de Dados Heterogêneas
- Definição da estrutura de dado heterogênea -struct e suas operações
- Definição da estrutura de dado heterogênea -struct e suas aplicações
- Definição da estrutura de dado heterogênea -struct e suas operações e aplicações
- Definição da estrutura de dado heterogênea -struct e suas operações e aplicações práticas
APRESENTAÇÃO
11. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
Bibliografias Utilizadas
Treinamento em Linguagem C Curso Completo Mod.1
Mizrahi, Victorine Viviane
12. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
Bibliografias Utilizadas
Algoritmos e Lógica de Programação - 2ª Ed
Gomes, Marcelo Marques; Soares, Marcio Vieira; Souza, Marco Antonio Furlan
de
13. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
• Conteúdo da aula nos seguintes sites:
https://professorthomasdacosta.wordpress.com/
https://www.facebook.com/ProfThomasDaCosta/
http://pt.slideshare.net/thomasdacosta/presentations
• Será disponibilizado 1 dia depois da aula.
• Não esqueçam de sempre baixar o material da aula quando
disponibilizado.
• Siga os sites acima e a página do Facebook para ficar atualizado sobre o
material e outros assuntos relacionados a tecnologia.
• E-mail do Professor: thomascosta@aedu.com
Material da Aula
14. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
• Horário de Aula: 19h10 – 20h50 e 21h10 – 22h00.
• Celulares desligados, atendam fora da sala caso precisem.
• Controlem as conversas paralelas !!!
• Todos os programas e exemplos em sala de aula foram testados.
• A todos estarei a disposição para tirar dúvidas !!!!
• Vamos ter uma aula animada.
• Participação de todos na aula.
• É uma disciplina complexa, por isso mantenha a atenção.
• Para aprender corretamente a disciplina, devemos praticar bastante tanto
no laboratório, sala de aula e em atividades extracurriculares.
Avisos
Estou aqui para fazer uma excelente aula e prepará-los para o mercado de
trabalho
15. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
Vamos iniciar nosso curso !!!
Na próxima aula !!!
16. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
FUNDAMENTOS DE ALGORITMOS
FUNDAMENTOS DE ALGORITMOS
17. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Fundamentos
FUNDAMENTOS DE ALGORITMOS
Antes de iniciar os Fundamentos de Algoritmos:
• Iremos resolver um problema denominado Torre de Hanói.
• Para resolução do problema, vamos utilizar lógica.
• E...um pouco mais de lógica !!!
• Vamos descrever a solução do problema passo-a-passo.
• Iremos conhecer alguns fundamentos básicos da programação.
• Vamos começar !!!
18. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de Hanói
FUNDAMENTOS DE ALGORITMOS
"Torre de Hanói ou Torre de Lucas é um "quebra-cabeça" que consiste em uma
base contendo três pinos, em um dos quais são dispostos alguns discos uns
sobre os outros, em ordem crescente de diâmetro, de cima para baixo. O
problema consiste em passar todos os discos de um pino para outro qualquer,
usando um dos pinos como auxiliar, de maneira que um disco maior nunca fique
em cima de outro menor em nenhuma situação. O número de discos pode
variar sendo que o mais simples contém apenas três."
Fonte: https://pt.wikipedia.org/wiki/Torre_de_Han%C3%B3i
O que é:
19. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de Hanói
FUNDAMENTOS DE ALGORITMOS
Vamos resolver a Torre de Hanói:
• Temos 3 pinos e 3 discos. (Podemos ter mais !!!)
• Devemos transferir os 3 discos para o último pino.
• O disco maior não deve fica em cima do disco menor.
20. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de Hanói
FUNDAMENTOS DE ALGORITMOS
Vamos resolver a Torre de Hanói:
21. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de Hanói
FUNDAMENTOS DE ALGORITMOS
Algoritmo:
• Início.
• Mover disco 1 para C.
• Mover disco 2 para B.
• Mover disco 1 para B.
• Mover disco 3 para C.
• Mover disco 1 para A.
• Mover disco 2 para C.
• Mover disco 1 para C.
22. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de Hanói
O que utilizamos para resolver o problema:
• Utilizamos lógica para resolver o problema.
• Um raciocínio lógico.
• Uma sequência definida e ordenada de passos.
• Tivemos que seguir a sequência, para a correta resolução do problema.
• Tínhamos um objetivo. Como todo programa ou software.
• Foi escrita a sequência de passos, mostrando o movimento dos discos. Isto
é um algoritmo.
• Foi escrita em uma linguagem conhecida e interpretada facilmente.
• Computadores utilizam de linguagem para escrever algoritmos.
• Na computação existem várias linguagens de desenvolvimento.
FUNDAMENTOS DE ALGORITMOS
23. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
O que é?:
FUNDAMENTOS DE ALGORITMOS
É uma sequência lógica de passos para atingir um determinado objetivo. Em
computação é uma sequência finita de instruções ou comandos para resolver
um problema computacional.
24. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Detalhes:
FUNDAMENTOS DE ALGORITMOS
• Para resolver um problema temos várias soluções.
• Então....um problema não tem um único algoritmo.
• Cada desenvolvedor tem um pensamento para criar um algoritmo.
• Um algoritmo pode ser melhor que o outro para resolver um problema.
• Estudar algoritmo requer bastante dedicação.
• Algoritmo é algo do nosso dia-a-dia.
25. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exemplos:
FUNDAMENTOS DE ALGORITMOS
• Somar dois números.
• Trocar um pneu furado.
• Trocar a lâmpada queimada.
• Tomar banho.
• Cozinhar um bolo.
• Jogar videogame.
• Calcular raiz quadrada.
• Viajar no final de semana.
• Jogar o jogo da velha.
• Fazer a prova e ser aprovado.
• Multiplicar dois números.
26. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exercícios:
FUNDAMENTOS DE ALGORITMOS
• Criar o algoritmo de fritar um ovo em linguagem natural:
• Resposta:
1. Pegar frigideira, ovo, óleo e sal.
2. Colocar óleo na frigideira.
3. Acender o fogo.
4. Colocar a frigideira no fogo.
5. Esperar o óleo esquentar.
6. Colocar o ovo.
7. Retirar quando pronto.
27. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exercícios:
FUNDAMENTOS DE ALGORITMOS
• Criar o algoritmo de mascar um chiclete em linguagem natural:
• Resposta:
1. Pegar o chiclete.
2. Retirar do papel.
3. Mastigar.
4. Jogar o papel no lixo.
28. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exercícios:
FUNDAMENTOS DE ALGORITMOS
• Criar o algoritmo para jogar um jogo no Playstation em
linguagem natural:
• Resposta:
1. Ligar a TV.
2. Ligar o Playstation (pode ser 3 ou o 4 !!!).
3. Ligar o controle.
4. Colocar o jogo no drive.
5. Escolher o jogo com o botão X.
6. Jogar o jogo até cansar !!!
29. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Exercícios:
FUNDAMENTOS DE ALGORITMOS
• Criar o algoritmo para calcular a média da matéria em
linguagem natural:
• Resposta:
1. Obter a média da B1.
2. Obter a média da B2.
3. Efetuar o cálculo de 40% da B1
4. Efetuar o cálculo de 60% da B2
5. Somar os cálculos obtidos.
6. Se a média for maior ou igual a 6, aluno aprovado.
7. Se a média for menor que 6, aluno reprovado.
30. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Algoritmo
Como são feitos os programas de computador:
FUNDAMENTOS DE ALGORITMOS
• Todo programa é feito com algoritmos.
• Para escrever os algoritmos precisamos de uma linguagem.
• Existem várias linguagens no mercado. (Se lembram?)
• Para escrever um programa em uma linguagem utilizamos um outro
programa.
• Este programa é conhecido como IDE (Integrated Development
Environment)
31. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
IDE
Orwell Dev-C++:
FUNDAMENTOS DE ALGORITMOS
32. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
IDE
Orwell Dev-C++:
FUNDAMENTOS DE ALGORITMOS
• Vamos programar em uma linguagem conhecida como C.
• Simplesmente C !!!
• Para baixar o programa utilize o endereço abaixo:
• https://sf.net/projects/orwelldevcpp/
33. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
LINGUAGEM DE PROGRAMAÇÃO
LINGUAGEM DE PROGRAMAÇÃO
34. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Aviso
LINGUAGEM DE PROGRAMAÇÃO
Todos os códigos fontes dessa aula, estão disponibilizados no Github:
https://github.com/thomasdacosta/algoritmos-
tecnicas-programacao.anhanguera-C
35. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Programação em Pares
LINGUAGEM DE PROGRAMAÇÃO
Detalhes:
• Dois programadores compartilham o desenvolvimento de um determinado
programa.
• Um programador tem o papel de piloto e o outro de copiloto.
• Piloto efetua a codificação do programa.
• Copiloto auxilia o piloto observando, auxiliando e revisando o trabalho
verificando possíveis problemas no desenvolvimento.
• Deve ocorrer a troca de pilotos e copilotos no decorrer do desenvolvimento.
• Para cada programa que iremos desenvolver no laboratório, iremos efetuar
a troca de parceiros de desenvolvimento.
36. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Desenvolvendo Programas
LINGUAGEM DE PROGRAMAÇÃO
Será necessário:
• Uma IDE.
• A IDE que vamos utilizar é o Orwell Dev-C++.
• Uma Linguagem de Programação.
• Vamos programar na linguagem C.
• Um problema ou objetivo a ser desenvolvido.
• Antes de iniciar vamos conhecer novos conceitos.
37. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Compilação
LINGUAGEM DE PROGRAMAÇÃO
Compilando um programa:
• Escrevemos o programa em uma linguagem conhecida facilmente por um
humano.
• Pode ocorrer erros de sintaxe quando estamos desenvolvendo o programa.
• Os erros são identificados pelo compilador.
• Além disso, o computador não entende diretamente a linguagem escrita.
• Precisa ocorrer uma conversão da linguagem para um nível mais baixo na
qual o computador possa entender e executar.
• Neste processo o arquivo executável da aplicação é gerado para ser
distribuído.
38. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Compilação
LINGUAGEM DE PROGRAMAÇÃO
Como acontece:
Programa
Fonte
Compilador
Código
Objeto
Link Editor
Bibliotecas
Programa
Executável
39. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Compilação
LINGUAGEM DE PROGRAMAÇÃO
Primeiro programa:
• Vamos desenvolver nosso primeiro programa em Linguagem C.
• O programa tem como objetivo imprimir a mensagem Olá Mundo na tela.
• Vamos começar !!!
40. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
printf("Olá Mundo");
}
Bibliotecas
Programa principal
Comando para imprimir
na tela do computador
41. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
LINGUAGEM DE PROGRAMAÇÃO
Saída do Programa:
Primeiro Programa em C
42. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Primeiro Programa em C
LINGUAGEM DE PROGRAMAÇÃO
Detalhes:
• Linhas de instruções terminam com ponto-e-vírgula.
• Bibliotecas são conjuntos de programas que possuem instruções e
comandos para estender as funcionalidades da aplicação.
• A linha int main() identifica a função principal do programa, local de início
da aplicação.
• O comando printf exibe um texto na tela. Para impressão do valor é
necessário abrir e fechar parênteses, aspas duplas e digitar o texto.
• Maioria das instruções são executadas por um comando pré-definido,
seguido de parênteses e parâmetros.
• O inicio e fim de chaves {} identifica um escopo do programa.
• Precisamos compilar o programa para identificar qualquer tipo de
problema.
• Após a compilação, o executável do programa é gerado.
43. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
printf("Olá Mundo");
}
Corrige a acentuação
44. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
LINGUAGEM DE PROGRAMAÇÃO
Saída do Programa:
Primeiro Programa em C
45. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Compilando um programa
LINGUAGEM DE PROGRAMAÇÃO
Comandos:
• F9 compila o programa.
• F10 executa um programa.
• F11 compila e executa um programa.
46. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Compilando um programa
LINGUAGEM DE PROGRAMAÇÃO
Arquivos:
Código fonte
Executável
47. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Indentação do Código-Fonte
LINGUAGEM DE PROGRAMAÇÃO
O que é:
É uma forma de deixar mais legível o código-fonte de um programa, usando
tabulações e espaços entre comandos.
Vamos ver um exemplo !!!
48. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Indentação do Código-Fonte
LINGUAGEM DE PROGRAMAÇÃO
#include <stdio.h>
int main()
{
printf("Olá Mundo");
}
Código bem tabulado e com
espaçamentos, é possível saber
aonde começa e termina os
comandos do programa
49. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Indentação do Código-Fonte
LINGUAGEM DE PROGRAMAÇÃO
Código RUIM !!! Mal tabulado e sem
espaçamentos. Difícil de entender
aonde começa e termina cada
instrução
#include <stdio.h>
int main()
{printf("Olá Mundo");}
50. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Detalhes:
• Variável é um local de memória para armazenar um determinado valor.
• As variáveis possuem vários tipos.
• São identificadas através de um único nome dentro de um escopo.
• Quando fizemos o algoritmo para calcular a média, tínhamos duas variáveis
Nota B1 e a Nota B2
• As duas variáveis podiam assumir qualquer tipo de valor numérico,
deixando o programa livre para funcionar com qualquer valor.
• Vamos desenvolver um programa com variáveis e analisar os seus tipos.
Nota B1
10
Nome da variável
Valor da variável
51. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Declaração:
int valor;
Para declarar uma variável precisamos de um tipo e um nome, seguido de
ponto-e-vírgula.
Tipo
Nome
52. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <stdbool.h>
int main()
{
int idade;
float salario;
double numero_pi;
char letra;
bool logico;
idade = 25;
salario = 12560.34;
numero_pi = 3.14159265359;
letra = 'A';
logico = true;
printf("%d, %f, %lf, %c, %d",
idade, salario, numero_pi, letra, logico);
}
Variáveis e seus tipos
Atribuindo valores para
as variáveis.
Imprimindo os valores
na tela
53. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Nomes de variáveis:
int valor;
int VALORES;
int val_salario;
int 3;
int 3valores;
int !valor;
Os nomes de variáveis não podem começar com números e não pode conter: {
( + - * / ; . , ?
54. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Nomes de variáveis:
As seguintes palavras são nomes reservados da Linguagem C e não podem ser
utilizados como nome de variáveis:
auto else long switch
break enum register typedef
case extern return union
char float short unsigned
const for signed void
continue goto sizeof volatile
default if static while
do int struct _Packed
double
55. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
// CÓDIGO COM ERRO
int valor;
int VALORES;
int val_salario;
int 3;
int 3valores;
int !valor;
}
56. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Atribuição:
Para atribuir um valor para uma variável utilizamos o operador = com o tipo
correspondente da variável.
Atribuindo valores para
variáveis
idade = 25;
salario = 12560.34;
numero_pi = 3.14159265359;
letra = 'A';
logico = true;
CUIDADO: atribuir um valor diferente do tipo esperado, ocorre um
erro de compilação ou de conversão de valores.
57. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Tipos:
Tipo Valores Exemplo
char Caracteres A,B,C,$,1
int Números Inteiros 10,20,30,1,5,6
float Números Reais 12560.34
double Números Reais 3.14159265359
bool Valores Lógicos true ou false
58. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Tamanhos:
Tipo Tamanho Faixa Mínima
char 1 byte -127 a 127
int 4 bytes
-2.147.483.648 a
2.147.483.647
float 4 bytes 6 dígitos de precisão
double 8 bytes 15 dígitos de precisão
59. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
char letra;
int idade;
float salario;
double numero_pi;
printf("%dn", sizeof(letra));
printf("%dn", sizeof(idade));
printf("%dn", sizeof(salario));
printf("%dn", sizeof(numero_pi));
}
Operador sizeof retorna
o tamanho de uma
variável em bytes.
60. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Modificadores:
• Algumas variáveis podem ser modificadas de acordo com algumas palavras
reservadas:
• unsigned – variável contém somente valores positivos.
• short – reduz a faixa de valores da variável.
• long – aumenta a faixa de valores da variável.
61. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
unsigned char letra;
unsigned short int idade;
float salario; // Não funciona com float
long double numero_pi;
printf("%dn", sizeof(letra));
printf("%dn", sizeof(idade));
printf("%dn", sizeof(salario));
printf("%dn", sizeof(numero_pi));
}
62. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Entrada de Dados
LINGUAGEM DE PROGRAMAÇÃO
Precisamos de dados para alimentar o programa:
• Todo programa precisa de dados para executar ou processar.
• Esses dados normalmente são incluídos por um usuário.
• O input das informações vem através do teclado e inserido em uma caixa de
texto. Vemos isso no nosso dia-a-dia. Ex: sites da internet, aplicações e etc.
• No próximo exemplo, vamos criar um programa que pede informações para
o usuário através do teclado.
• Este exemplo, utiliza o console para inserir uma informação do usuário.
Entrada Processamento Saida
63. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
int idade;
printf("Digite a sua idade:");
scanf("%d", &idade);
printf("Valor digitado: %d", idade);
}
Inserindo informações
do usuário pelo teclado.
64. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Entrada de Dados
LINGUAGEM DE PROGRAMAÇÃO
65. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Imprimindo e capturando valores
LINGUAGEM DE PROGRAMAÇÃO
Variáveis:
• Os comandos printf e scanf precisam de determinados operadores para
identificar o tipo de variável que será impressa ou capturada pelo teclado.
• No exemplo abaixo o operador %d captura ou imprime um valor inteiro.
scanf("%d", &idade);
printf("%d", idade);
Tipo Operador
char %c
int %d
float %f
double %lf
66. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
// Imprime um inteiro
printf("%dn", 79);
// Imprime um inteiro com espaço em branco
printf("%4dn", 79);
// Imprime um inteiro com zero a esquerda
printf("%04dn", 79);
// Imprime ponto flutuante
printf("%fn", 3.6);
// Imprime em notação científica
printf("%en", 16.567837);
// Imprime um número com uma determinada
// qtd. de casas decimais
printf("%.2fn", 16.567837);
// Imprime um tipo double
printf("%lfn", 16.567837);
// Imprime um caracter
printf("%cn", 65);
// Imprime um conjunto de caracteres
printf("%sn", "Meu primeiro programa");
}
67. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Constantes
LINGUAGEM DE PROGRAMAÇÃO
Detalhes:
• São variáveis em que o valor não pode ser alterado em tempo de execução
do programa.
• É declarado pela palavra reservada const antes da declaração da variável.
const double PI = 3.14159265359;
68. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
const double PI = 3.14159265359;
printf("%lf", PI);
}
69. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Operadores Matemáticos
LINGUAGEM DE PROGRAMAÇÃO
Vamos fazer contas:
Os operadores matemáticos na Linguagem C seguem a tabela abaixo:
Operador Significado
+ Soma
- Subtração
* Multiplicação
/ Divisão
% Resto da Divisão
70. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
int operador1;
int operador2;
int resultado;
operador1 = 5;
operador2 = 4;
resultado = operador1 + operador2;
printf("Resultado: %d", resultado);
}
Soma
71. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
int operador1;
int operador2;
int resultado;
operador1 = 5;
operador2 = 4;
resultado = operador1 - operador2;
printf("Resultado: %d", resultado);
}
Subtração
72. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
int operador1;
int operador2;
int resultado;
operador1 = 5;
operador2 = 4;
resultado = operador1 * operador2;
printf("Resultado: %d", resultado);
}
Multiplicação
73. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
double operador1;
double operador2;
double resultado;
operador1 = 5.0;
operador2 = 4.0;
resultado = operador1 / operador2;
printf("Resultado: %.2f", resultado);
}
Divisão
74. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
int operador1;
int operador2;
int resultado;
operador1 = 5;
operador2 = 4;
resultado = operador1 % operador2;
printf("Resultado: %d", resultado);
}
Resto da Divisão
75. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Operadores Lógicos
Um pouco de lógica proposicional:
Os operadores lógicos na Linguagem C seguem a tabela abaixo:
LINGUAGEM DE PROGRAMAÇÃO
Operador Significado
&& Conjunção (AND ou E)
|| Disjunção (OR ou OU)
! Negação (NOT ou NÃO)
76. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <stdbool.h>
int main()
{
bool p;
bool q;
bool S;
p = false;
q = true;
S = p && q;
printf("Proposição: %d",S);
S = p || q;
printf("Proposição: %d",S);
printf("Proposição: %d",!p);
}
77. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Comentários no Código
LINGUAGEM DE PROGRAMAÇÃO
Documentando o código:
• Quando criamos um programa, sempre é necessário documentá-lo.
• Outros desenvolvedores podem efetuar a manutenção do seu código.
• Código bem documentado ajuda os desenvolvedores a entender mais
facilmente.
• O código documentado ou comentado é ignorado pelo compilador.
• Existe o comentário em bloco e o comentário em linha.
/**
Comentário em bloco
Autor: Prof. Thomás da Costa
**/
// Exibe a mensagem 'Olá Mundo' na tela
Comentário em Bloco
Comentário em Linha
78. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
/**
Comentário em bloco
Autor: Prof. Thomás da Costa
**/
int main()
{
// Exibe a mensagem 'Olá Mundo' na tela
printf("Olá Mundo");
}
79. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Desafio
LINGUAGEM DE PROGRAMAÇÃO
Vamos programar um pouco mais:
1. Desenvolver um programa para calcular a média da faculdade:
a) O programa deve receber as informações do usuário pelo teclado.
b) Imprimir o resultado da média.
c) Não vamos nos preocupar em identificar se foi aprovado ou
reprovado.
d) Utilizar variáveis do tipo double.
80. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
double nota_b1;
double nota_b2;
double media;
printf("Digite a nota da B1:");
scanf("%lf", ¬a_b1);
printf("Digite a nota da B2:");
scanf("%lf", ¬a_b2);
media = ((nota_b1 * 0.4) + (nota_b2 * 0.6));
printf("Média: %f", media);
}
81. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Resumo
LINGUAGEM DE PROGRAMAÇÃO
• Utilizamos a Linguagem C para desenvolver nossos algoritmos.
• Compilação é uma etapa que verifica a sintaxe do código digitado.
• Quando o programa é compilado, o executável da aplicação é criado.
• Para efetuar operações matemáticas, utilizamos alguns operadores.
• Operadores lógicos são utilizados para trabalhar com proposições.
• Comentar o código-fonte é uma boa prática de documentação.
• Indentação do código, mantém a organização e a legibilidade do programa.
82. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
ESTRUTURAS DE CONTROLE
83. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
O que é?:
É uma instrução ou comando dentro de uma programa em C, que determina a
veracidade de uma determinada condição. Essa condição normalmente é
formada por uma ou mais proposições simples.
84. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
Condicional IF – ELSE:
A primeira instrução condicional que vamos estudar é o comando if. Neste
comando, o primeiro bloco determinada que a condição é verdadeira. O
segundo bloco que começa pela instrução else, determina que a condição é
falsa.
if (condição)
<resultado verdadeiro>
else
<resultado falso>
85. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
Exemplo:
if (media >= 6)
printf("Aluno aprovado !!!");
else
printf("Aluno reprovado !!!");
Condição é verdadeira.
Condição é falsa.
86. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
double nota_b1;
double nota_b2;
double media;
printf("Digite a nota da B1:");
scanf("%lf", ¬a_b1);
printf("Digite a nota da B2:");
scanf("%lf", ¬a_b2);
media = ((nota_b1 * 0.4) + (nota_b2 * 0.6));
printf("Média: %.2fn", media);
if (media >= 6)
printf("Aluno aprovado !!!");
else
printf("Aluno reprovado !!!");
}
87. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
Importante:
Em um bloco condicional if, quando as instruções seguintes ao if não estão
dentro de chaves, somente a linha abaixo da condição será executada. Caso
desejamos que o bloco condicional execute mais de uma linha, devemos incluir
as chaves, criando um novo escopo. Isso é válido também para instrução else.
if (condição)
{
<instrução 1>;
<instrução 2>;
}
88. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Condicionais
Exemplo:
if (numero >=0 && numero <= 10)
{
printf("Número válido !!!n");
printf("Número digitado: %dn", numero);
}
else
printf("Número inválido !!!n");
As chaves colocam as linhas dentro
de um escopo.
Sem chaves somente a
linha seguinte é executada.
89. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
#include <conio.h>
int main()
{
int numero;
setlocale(LC_ALL, "Portuguese");
printf("Digite um número entre 0 e 10: ");
scanf("%d", &numero);
if (numero >=0 && numero <= 10)
{
printf("Número válido !!!n");
printf("Número digitado: %dn", numero);
}
else
printf("Número inválido !!!n");
printf("Bye !!!n");
getch();
}
90. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
Operadores:
ESTRUTURAS DE CONTROLE
Negação Conjunção
> Maior
>= Maior igual
< Menor
<= Menor igual
!= Diferente de
== Igual
= Atribuição de valores
91. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
Proposições:
No próximo exemplo, vamos estudar um problema com condições mais
complexas. Essas condições, possuem as mesmas regras das expressões
proposicionais.
ESTRUTURAS DE CONTROLE
Negação Conjunção Disjunção
! && ||
• A ordem de resolução dos conectivos segue a tabela abaixo.
• Quando existir uma expressão com parênteses, eles deverão ser
resolvidos primeiro.
92. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <stdbool.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
bool p;
bool q;
bool r;
p = true;
q = false;
r = true;
if (((q && r) || (!p && r)) && r)
printf("Verdadeiro !!!n");
else
printf("Falso !!!n");
printf("Resultado da expressão: %dn", ((q && r) || (!p && r)) && r);
}
93. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
Condicional IF – ELSE IF:
ESTRUTURAS DE CONTROLE
Em determinadas situações de um programa, pode existir mais de uma
condição verdadeira em um comando if. Para resolver este problema,
utilizamos o comando else if que verifica a veracidade de outras condições.
Caso nenhuma das condições seja verdadeira, a condicional entra no bloco
else.
if (condição 1)
<resultado verdadeiro>
else if (condição 2)
<resultado verdadeiro>
else
<resultado falso>
94. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
Exemplo:
ESTRUTURAS DE CONTROLE
if (opcao_menu == 1)
printf("Opção de incluir aluno selecionado");
else if (opcao_menu == 2)
printf("Opção de listar aluno selecionado");
else if (opcao_menu == 3)
printf("Saindo !!!");
else
printf("Opção inválida !!!");
Condições verdadeiras.
Condição falsa.
95. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
int opcao_menu;
printf("Digite uma opçãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
scanf("%d", &opcao_menu);
if (opcao_menu == 1)
printf("Opção de incluir aluno selecionado");
else if (opcao_menu == 2)
printf("Opção de listar aluno selecionado");
else if (opcao_menu == 3)
printf("Saindo !!!");
else
printf("Opção inválida !!!");
}
96. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
ESTRUTURAS DE CONTROLE
Condicional SWITCH:
Vamos estudar um novo comando condicional: o switch. A instrução switch é
um comando que valida a informação de uma determinada variável.
Normalmente, a variável utilizada para verificação de um valor é do tipo int.
Não conseguimos validar proposições mais complexas em um comando switch.
switch (variável)
{
case <constante 1>:
{
<instrução 1>;
break;
}
...
default:
{
<nenhuma das opções anteriores>;
break;
}
}
97. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Condicionais
ESTRUTURAS DE CONTROLE
Exemplo:
switch (opcao_menu)
{
case 1:
{
printf("Opção de incluir aluno selecionado");
break;
}
case 2:
{
printf("Opção de listar aluno selecionado");
break;
}
...
default:
{
printf("Opção inválida !!!");
break;
}
}
Variável condicional.
Condições
verdadeiras.
Condição falsa.
98. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
int opcao_menu;
printf("Digite uma opçãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
scanf("%d", &opcao_menu);
switch (opcao_menu)
{
case 1:
{
printf("Opção de incluir aluno selecionado");
break;
}
case 2:
{
printf("Opção de listar aluno selecionado");
break;
}
case 3:
{
printf("Saindo !!!");
break;
}
default:
{
printf("Opção inválida !!!");
break;
}
}
}
99. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
O que é?:
São comandos utilizados para repetir um determinado conjunto de instruções
até que uma determinada condição seja satisfeita. Vamos estudar os 3 tipos de
laços encontrados em programação.
100. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
Laço - WHILE:
A primeira instrução de laço que vamos estudar é o while. Esta instrução de
laço, executa um bloco de comando enquanto uma condição for verdadeira.
Além disso, o comando while pode ser ou não executado caso a condição não
seja verdadeira inicialmente.
while (condição)
{
<instrução 1>;
<instrução 2>;
}
101. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
Exemplo:
int opcao_menu = 0;
while (opcao_menu != 3)
{
system("cls");
printf("Digite uma opçãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
...
}
Condição.
Bloco de comando que vai ser repetir
enquanto a condição for verdadeira.
102. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
int opcao_menu = 0;
while (opcao_menu != 3)
{
system("cls");
printf("Digite uma opçãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
scanf("%d", &opcao_menu);
switch (opcao_menu)
{
case 1:
{
printf("Opção de incluir aluno selecionado.n");
getch();
break;
}
case 2:
{
printf("Opção de listar aluno selecionado.n");
getch();
break;
}
case 3:
{
printf("Saindo !!!n");
getch();
break;
}
default:
{
printf("Opção inválida !!!n");
getch();
break;
}
}
}
}
103. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
Laço DO – WHILE:
A instrução do – while tem a mesma semelhança que a instrução while. Neste
tipo de laço, o bloco de comando é executado pelo menos uma vez, antes de
validar a condição do laço.
do
{
<instrução 1>;
<instrução 2>;
} while (condição);
104. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
#include <stdlib.h>
#include <conio.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
int opcao_menu;
do
{
system("cls");
printf("Digite uma opçãon");
printf("1 - Incluir alunon");
printf("2 - Listar alunon");
printf("3 - Sairn");
scanf("%d", &opcao_menu);
switch (opcao_menu)
{
case 1:
{
printf("Opção de incluir aluno selecionado.n");
getch();
break;
}
case 2:
{
printf("Opção de listar aluno selecionado.n");
getch();
break;
}
case 3:
{
printf("Saindo !!!n");
getch();
break;
}
default:
{
printf("Opção inválida !!!n");
getch();
break;
}
}
} while (opcao_menu != 3);
}
Este bloco é executado pelo menos
uma vez, independente da condição,
pois a mesma é validada depois.
105. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Operadores
ESTRUTURAS DE CONTROLE
Detalhes:
Antes de estudar o próximo laço, vamos conhecer alguns operadores em C.
Operador Conjunção
++ Incremento
-- Decremento
+= Atribuição de soma
-= Atribuição de subtração
*= Atribuição de multiplicação
/= Atribuição de divisão
106. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
int a = 1;
int b = 1;
int c = 1;
printf("Variável: %dn", a);
printf("Pós-incremento: %dn", a++);
printf("Variável: %dnn", a);
printf("Variável: %dn", a);
printf("Pré-incremento: %dn", ++a);
printf("Variável: %dnn", a);
printf("%dn", b--);
printf("%dn", --b);
c += 1;
printf("%dn", c);
c -= 1;
printf("%dn", c);
c *= 2;
printf("%dn", c);
c /= 2;
printf("%dn", c);
}
Operadores de Pós-incremento:
Valor é usado antes de ser
incrementado.
Operadores de Pré-incremento:
Valor é incrementado e depois
o novo valor é utilizado.
107. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Laços
ESTRUTURAS DE CONTROLE
Laços FOR:
No laço for, a repetição de um bloco de comando, acontece a partir de um
início determinado, uma condição final e uma operação de incremento e
decremento, indicando se o laço é crescente ou decrescente. Utilizamos o laço
for principalmente quando temos uma faixa entre dois valores e precisamos
efetuar operações de repetições.
for (início;condição;incremento/decremento)
{
<instrução 1>;
<instrução 2>;
}
108. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
int i;
for (i=0;i<=10;i++)
{
printf("Contando %dn", i);
}
}
Inicio do laço.
Condição.
Incremento ou decremento:
indicando se o laço será
crescente ou decrescente.
109. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
int i;
int inicio, fim;
setlocale(LC_ALL, "Portuguese");
printf("Digite um número inicial:");
scanf("%d", &inicio);
printf("Digite um número final:");
scanf("%d", &fim);
for (i=inicio;i<=fim;i++)
{
printf("Contando %dn", i);
}
}
110. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
int i;
int inicio, fim;
setlocale(LC_ALL, "Portuguese");
printf("Digite um número inicial:");
scanf("%d", &inicio);
printf("Digite um número final:");
scanf("%d", &fim);
for (i=inicio;i<=fim;i++)
{
if ((i % 2) == 0)
printf("Número %d par !!!n", i);
else
printf("Número %d impar !!!n", i);
}
}
111. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Escopo
Não esquecer !!!:
Em uma condicional ou em um laço, somente a instrução seguinte será
executada. As instruções devem ser colocadas dentro de blocos com chaves,
para que um conjunto de instruções seja executado.
ESTRUTURAS DE CONTROLE
Chaves !!!
112. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Funções
O que é?:
São rotinas que tem como objetivo, executar trechos de códigos de forma
modular, melhorando a organização do programa e evitando repetição de
código. As funções são reutilizáveis dentro de um programa.
ESTRUTURAS DE CONTROLE
113. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Funções
Estrutura de uma função:
Retorno da função.
Parâmetros da função.
Corpo da função.
Escopo de início e fim da função.
double somar(double x, double y)
{
double resultado = x + y;
return resultado;
}
Nome da função.
114. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
double somar(double x, double y);
int main()
{
setlocale(LC_ALL, "Portuguese");
double valor = somar(10, 10);
printf("%lf", valor);
}
double somar(double x, double y)
{
double resultado = x + y;
return resultado;
}
Protótipo da função.
Chamando a função “somar”
passando os parâmetros 10 e 10.
Retornando o valor para a
variável “valor”.
115. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
Funções
Estrutura de uma função:
• Tipos de retorno da função:
• double, float, int, char, void e outros tipos
• Parâmetros da função
• Cada parâmetro é composto pelo tipo, nome e separados por
virgulas.
• Retorno da função:
• Quando uma função deve retornar um valor, devemos usar a palavra
reservada return seguido de um valor, variável ou operação do
mesmo tipo de retorno.
• Corpo da função:
• Código fonte com a funcionalidade que a função deve executar.
• Protótipo:
• As funções possuem protótipos para definir sua estrutura.
116. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
void ola_mundo();
int main()
{
setlocale(LC_ALL, "Portuguese");
ola_mundo();
}
void ola_mundo()
{
printf("Olá Mundo !!!");
}
void não retornar nenhum valor
para a função.
Não existe a declaração da
variável do tipo void.
117. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Resumo
• As instruções condicionais são utilizadas para verificar a veracidade de uma
determinada condição proposicional.
• Os laços executam um bloco de instruções repetidas vezes até uma
condição seja satisfeita.
• Existem os operadores condicionais, incremento, decremento e de
atribuição matemática.
• Funções são blocos de instruções reutilizáveis dentro de um programa.
ESTRUTURAS DE CONTROLE
118. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
VETORES E MATRIZES
VETORES E MATRIZES
119. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
VETORES E MATRIZES
Vetores
O que é?:
É um conjunto do mesmo tipo de variável com um tamanho definido. Um vetor
possui um indexador para identificar a posição dentro do conjunto de variáveis.
Este conjunto não pode possuir tipos diferentes.
120. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Vetores
Exemplo:
VETORES E MATRIZES
int vetor[5] = { 0, 1, 2, 3, 4 };
Tamanho de 5 posições.
Tipo do vetor.
Atribuindo valores para o vetor
nas posições correspondentes.
121. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
int vetor[5] = { 0, 1, 2, 3, 4 };
int i;
for (i=0;i<=4;i++)
{
printf("posição: %d, valor: %dn", i, vetor[i]);
}
}
122. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
int vetor[5];
printf("Digite um valor na posição 3 do vetor: ");
vetor[1] = 100;
scanf("%d", &vetor[2]);
printf("Valor digitado: %dn", vetor[2]);
printf("Valor na segunda posição: %d", vetor[1]);
}
123. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Vetores
Detalhes:
VETORES E MATRIZES
• Possui um índice que identifica a posição do elemento.
• O vetor sempre começa no índice 0 e terminar no índice tamanho – 1.
• Vetores armazenam uma quantidade definida de valores.
• Vetores ocupam mais espaço de memória.
• Possuem somente uma dimensão de tamanho.
• Podemos inicializar os valores, quando declaramos a variável do tipo vetor.
• Não suporta tipos diferentes dentro do mesmo vetor.
• Percorremos vetores de forma crescente, decrescente ou a partir de uma
posição.
• Podemos atribuir um valor para uma posição definida.
• Quando atribuímos um valor para uma posição maior que a quantidade
suportada do vetor, o programa pode apresentar erros de memória.
124. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Vetores
Vetor especial:
VETORES E MATRIZES
• Um vetor de char é conhecido como um tipo string.
• Normalmente o vetor do tipo char é um conjunto de caracteres.
• Representam uma palavra.
• Possui o mesmo formato dos outros vetores.
• Podemos receber uma string do teclado através do comando scanf.
125. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
char nome[255] = "João";
char cidade[255];
printf("Olá %s !!! Qual a sua cidade de nascimento? ", nome);
fgets(cidade, sizeof(cidade), stdin);
printf("%s você nasceu em %s", nome, cidade);
}
126. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Vetores
Funções de um vetor de char:
VETORES E MATRIZES
• strlen – obtém o tamanho de uma string.
• strcat – concatena duas strings.
• strcmp – compara duas strings. Se forem iguais, retornar 0.
127. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <locale.h>
#include <string.h>
int main()
{
setlocale(LC_ALL, "Portuguese");
char curso[] = "Sistemas da Informação";
char faculdade[] = " Anhanguera";
printf("%dn", strlen(curso));
printf("%sn", strcat(curso, faculdade));
if (strcmp(curso, faculdade) == 0)
printf("Strings iguais !!!");
else
printf("São diferentes !!!");
}
128. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Matrizes
São vetores que possuem duas ou mais dimensões para armazenar valores.
Uma matriz de duas dimensões, possui um comportamento semelhante ao de
uma tabela com linhas e colunas.
O que é?:
VETORES E MATRIZES
129. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Matrizes
Exemplo:
int valor[4][4] = {
{0, 0 ,0 ,0},
{0, 1 ,1 ,0},
{0, 1 ,1 ,0},
{0, 0 ,0 ,0}
};Declaração de uma matriz
VETORES E MATRIZES
130. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
int main()
{
int valor[4][4] = {
{0, 0 ,0 ,0},
{0, 1 ,1 ,0},
{0, 1 ,1 ,0},
{0, 0 ,0 ,0}
};
valor[0][2] = 22;
int i, j;
for (i=0;i<=3;i++)
{
for (j=0;j<=3;j++)
printf("%d", valor[i][j]);
printf("n");
}
}
131. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Matrizes
Podemos atribuir valores para uma posição de uma matriz utilizando
diretamente os seus índices.
Atribuição de Valor:
valor[0][2] = 22;
VETORES E MATRIZES
132. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Matrizes
• Sempre usar com sabedoria !!!
• Quanto maior o tamanho da matriz, maior a quantidade de memória
ocupada.
• A memória da matriz é de alocação estática.
• Podemos declarar qualquer tipo de matriz.
• Matrizes podem possuir várias dimensões, mas cuidado ao utilizar.
• Não se esqueça: computador tem memória limitada !!!
• Para acessar as informações de uma matriz vamos precisar sempre de dois
índices.
Detalhes:
VETORES E MATRIZES
133. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Resumo
• Vetor é conjunto de variáveis do mesmo tipo.
• Possui um índice que identifica a posição dentro do vetor.
• Começam na posição 0 e terminam na posição tamanho – 1.
• Um vetor de char é conhecido como string.
• Existem algumas operações com string: obter o tamanho, comparação e
concatenação.
• Matriz é um vetor com duas dimensões.
VETORES E MATRIZES
134. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
ESTRUTURAS DE DADOS
135. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Estruturas
O que é?:
É um conjunto de variáveis que representam características de um
determinado domínio ou de um tipo. A estrutura pode definir uma entidade e
possui grande semelhança com registros de banco de dados. O agrupamento
de variáveis pode ser de qualquer tipo, sendo denominado de membro da
estrutura.
ESTRUTURAS DE DADOS
136. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
Estruturas
Exemplo:
Quais são as informações de um Aluno para a Faculdade?
• Nome.
• Matrícula.
• Série.
• Turma.
• Curso.
No exemplo acima temos a estrutura Aluno que contém as informações ou as
características de um aluno. Muito semelhante a um registro de banco de
dados.
Podemos dizer que em uma estrutura, estamos armazenando informações
agrupadas logicamente.
137. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
Estruturas
Mais um exemplo:
Quais as informações de um Funcionário para uma Empresa?
• Nome.
• Dados Pessoais.
• Data de Admissão.
• Cargo.
• Salário.
• Setor/Área de Atuação.
Vamos ver como fazer uma estrutura em
C/C++ !!!
138. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
Estruturas
Estruturas em C/C++:
struct aluno
{
char nome[255];
int ra;
int serie;
int turma;
char curso[100];
};
Nome da estrutura.
Palavra reservada
que identifica uma
estrutura.
Membros da estrutura.
Chaves definem o início
e o fim da estrutura.
Termina com ponto e
vírgula.
139. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
Memória:
Estruturas
Uma estrutura armazena vários tipos de dados e ocupa a memória de acordo
com a quantidade de membros declarados na estrutura.
struct aluno
{
char nome[255];
int ra;
int serie;
int turma;
char curso[100];
};
Membro Bytes
char nome[255] 255
int ra 4
int serie 4
int turma 4
char curso[100] 100
TOTAL: 367
140. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
Declarando uma variável do tipo Estrutura:
Estruturas
Existem 3 formas de declarar uma variável de estrutura:
struct aluno
{
char nome[255];
int ra;
int serie;
int turma;
char curso[100];
} aluno_anhanguera;
struct aluno aluno_tecnologia;
typedef struct aluno aluno_curso;
141. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Acessando membros de uma estrutura:
Estruturas
Para acessar um membro de uma estrutura utilizamos o operador ponto (.)
ESTRUTURAS DE DADOS
Acessando um
membro.
O membro “nome” da estrutura será
impresso na tela
int main()
{
printf("%dn",sizeof(aluno_anhanguera.nome));
}
142. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
struct aluno
{
char nome[255];
int ra;
int serie;
int turma;
char curso[100];
} aluno_anhanguera;
struct aluno aluno_tecnologia;
typedef struct aluno aluno_curso;
int main()
{
printf("%dn",sizeof(aluno_anhanguera.nome));
printf("%dn",sizeof(aluno_anhanguera.ra));
printf("%dn",sizeof(aluno_anhanguera.serie));
printf("%dn",sizeof(aluno_anhanguera.turma));
printf("%dn",sizeof(aluno_anhanguera.curso));
printf("%dn",sizeof(aluno_anhanguera));
}
143. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
int main()
{
demo.caracter = 'A';
demo.valor1 = 3.2;
demo.valor2 = 6.7;
demo.valor3 = 45;
printf("%cn", demo.caracter);
printf("%.2lfn", demo.valor1);
printf("%.2fn", demo.valor2);
printf("%dn", demo.valor3);
}
Atribuindo valores para membros de uma função:
Estruturas
ESTRUTURAS DE DADOS
Atribuição de valores.
144. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
struct demonstracao
{
char caracter;
double valor1;
float valor2;
int valor3;
} demo;
int main()
{
demo.caracter = 'A';
demo.valor1 = 3.2;
demo.valor2 = 6.7;
demo.valor3 = 45;
printf("%cn", demo.caracter);
printf("%.2lfn", demo.valor1);
printf("%.2fn", demo.valor2);
printf("%dn", demo.valor3);
}
145. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
#include <strings.h>
struct demonstracao
{
char string[100];
int vetor_inteiro[10];
double vetor_double[5];
} demo;
int main()
{
strcpy(demo.string, "Valor da String 1");
demo.vetor_inteiro[0] = 1;
demo.vetor_inteiro[2] = 2;
demo.vetor_double[4] = 5.6;
printf("%sn", demo.string);
printf("%dn", demo.vetor_inteiro[0]);
printf("%dn", demo.vetor_inteiro[2]);
printf("%.2lfn", demo.vetor_double[4]);
}
Vetor de char usar strcpy.
146. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
struct demonstracao
{
char string[100];
char caracter;
int valor_inteiro;
double valor_double;
} demo;
int main()
{
printf("Digite o valor da string:");
fgets(demo.string, sizeof(demo.string), stdin);
printf("Digite os valores:");
scanf(" %c", &demo.caracter);
scanf("%d", &demo.valor_inteiro);
scanf("%lf", &demo.valor_double);
printf("Valores digitados: %s, %c, %d, %.2lf",
demo.string,
demo.caracter,
demo.valor_inteiro,
demo.valor_double);
}
147. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h>
struct aluno
{
char nome[100];
int ra;
} aluno_tecnologia;
void imprimir_aluno(char nome[], int ra);
int main()
{
printf("Digite o nome do aluno:");
fgets(aluno_tecnologia.nome, sizeof(aluno_tecnologia.nome), stdin);
printf("Digite o RA do aluno:");
scanf("%d", &aluno_tecnologia.ra);
imprimir_aluno(aluno_tecnologia.nome,
aluno_tecnologia.ra);
}
void imprimir_aluno(char nome[], int ra)
{
printf("%sn", nome);
printf("%dn", ra);
}
148. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Resumo
ESTRUTURAS DE DADOS
• É definida pela palavra struct.
• Possuem um nome.
• Representa algum domínio, tipo ou uma entidade.
• Os tipos de uma estrutura são agrupadas logicamente.
• Composta de membros que são tipos de variáveis (int, double, float, char).
• Seus membros são acessados utilizando o ponto (.)
• Para atribuir valores (int, double, char e etc), utilizamos o operador igual (=), idêntico
a atribuição de uma variável.
• Utilizamos o strcpy para atribuir um valor para um vetor de char.
• O comando scanf funciona da mesma forma para os membros de uma estrutura.
• Vetores também são acessado da mesma forma, através de seus índices.
149. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
Semestre concluído !!! Parabéns a todos !!!
THANKS FOR STUDYING