ANHANGUERA – 2016.2
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃOCURSO COMPLETO
Prof. Thomás da [email protected]
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
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
https://github.com/thomasdacosta
Prof. Thomás da Costa
https://professorthomasdacosta.wordpress.com
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 !!!
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.
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.
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 aprenderOnde tudo começa:
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
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
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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
Bibliografias UtilizadasTreinamento em Linguagem C Curso Completo Mod.1Mizrahi, Victorine Viviane
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
Bibliografias UtilizadasAlgoritmos e Lógica de Programação - 2ª EdGomes, Marcelo Marques; Soares, Marcio Vieira; Souza, Marco Antonio Furlan de
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: [email protected]
Material da Aula
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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
APRESENTAÇÃO
Vamos iniciar nosso curso !!!
Na próxima aula !!!
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
FUNDAMENTOS DE ALGORITMOS
FUNDAMENTOS DE ALGORITMOS
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 !!!
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 é:
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.
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:
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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Torre de HanóiO 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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
AlgoritmoO 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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
AlgoritmoDetalhes:
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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
AlgoritmoExemplos:
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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
AlgoritmoExercí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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
AlgoritmoExercí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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
AlgoritmoExercí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 !!!
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
AlgoritmoExercí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 B14. Efetuar o cálculo de 60% da B25. 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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
AlgoritmoComo 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)
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
IDEOrwell Dev-C++:
FUNDAMENTOS DE ALGORITMOS
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
IDEOrwell 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/
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
LINGUAGEM DE PROGRAMAÇÃO
LINGUAGEM DE PROGRAMAÇÃO
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
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.
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.
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.
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
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 !!!
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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
LINGUAGEM DE PROGRAMAÇÃO
Saída do Programa:
Primeiro Programa em C
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.
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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
LINGUAGEM DE PROGRAMAÇÃO
Saída do Programa:
Primeiro Programa em C
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.
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
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 !!!
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
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");}
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
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
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
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: { ( + - * / \ ; . , ?
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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h> int main(){
// CÓDIGO COM ERROint valor;int VALORES;int val_salario;int 3;int 3valores;int !valor;
}
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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Tipos:
Tipo Valores Exemplochar Caracteres A,B,C,$,1int 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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Variáveis
LINGUAGEM DE PROGRAMAÇÃO
Tamanhos:
Tipo Tamanho Faixa Mínimachar 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ãodouble 8 bytes 15 dígitos de precisão
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("%d\n", sizeof(letra));printf("%d\n", sizeof(idade));printf("%d\n", sizeof(salario));printf("%d\n", sizeof(numero_pi));
}
Operador sizeof retorna o tamanho de uma variável em bytes.
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.
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 floatlong double numero_pi;
printf("%d\n", sizeof(letra));printf("%d\n", sizeof(idade));printf("%d\n", sizeof(salario));printf("%d\n", sizeof(numero_pi));
}
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
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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Entrada de Dados
LINGUAGEM DE PROGRAMAÇÃO
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 Operadorchar %cint %d
float %fdouble %lf
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h> int main(){
// Imprime um inteiroprintf("%d\n", 79);// Imprime um inteiro com espaço em brancoprintf("%4d\n", 79);// Imprime um inteiro com zero a esquerdaprintf("%04d\n", 79);// Imprime ponto flutuanteprintf("%f\n", 3.6);// Imprime em notação científicaprintf("%e\n", 16.567837);// Imprime um número com uma determinada // qtd. de casas decimaisprintf("%.2f\n", 16.567837);// Imprime um tipo doubleprintf("%lf\n", 16.567837);// Imprime um caracterprintf("%c\n", 65);// Imprime um conjunto de caracteresprintf("%s\n", "Meu primeiro programa");
}
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;
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);}
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
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
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
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
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
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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
Operadores LógicosUm 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)
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);
}
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 blocoAutor: Prof. Thomás da Costa
**/
// Exibe a mensagem 'Olá Mundo' na tela
Comentário em Bloco
Comentário em Linha
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
#include <stdio.h> /**
Comentário em blocoAutor: Prof. Thomás da Costa
**/int main(){
// Exibe a mensagem 'Olá Mundo' na tela
printf("Olá Mundo");}
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.
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);
}
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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
ESTRUTURAS DE CONTROLE
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
CondicionaisO 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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
CondicionaisCondicional 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>
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
CondicionaisExemplo:
if (media >= 6)printf("Aluno
aprovado !!!");else
printf("Aluno reprovado !!!");
Condição é verdadeira.
Condição é falsa.
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: %.2f\n", media);
if (media >= 6)printf("Aluno aprovado !!!");
elseprintf("Aluno reprovado !!!");
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
CondicionaisImportante: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>;}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
CondicionaisExemplo:
if (numero >=0 && numero <= 10){
printf("Número válido !!!\n");printf("Número digitado: %d\n",
numero);}else
printf("Número inválido !!!\n");
As chaves colocam as linhas dentro de um escopo.
Sem chaves somente a linha seguinte é executada.
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: %d\n", numero);}else
printf("Número inválido !!!\n");
printf("Bye !!!\n");getch();
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
CondicionaisOperadores:
ESTRUTURAS DE CONTROLE
Negação Conjunção
> Maior
>= Maior igual
< Menor
<= Menor igual
!= Diferente de
== Igual
= Atribuição de valores
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
CondicionaisProposiçõ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.
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");
elseprintf("Falso !!!\n");
printf("Resultado da expressão: %d\n", ((q && r) || (!p && r)) && r); }
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
CondicionaisCondicional 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>
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
CondicionaisExemplo:
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 !!!");
elseprintf("Opção inválida !!!");
Condições verdadeiras.
Condição falsa.
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ção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");
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 !!!");
elseprintf("Opção inválida !!!");
}
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;}
}
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.
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ção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");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;}
}}
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.
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>;
}
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ção\
n");printf("1 - Incluir aluno\
n");printf("2 - Listar aluno\
n");printf("3 - Sair\n");
... }
Condição.
Bloco de comando que vai ser repetir enquanto a condição for verdadeira.
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ção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");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;}}
}}
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);
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ção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");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.
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
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: %d\n", a);printf("Pós-incremento: %d\n", a++);printf("Variável: %d\n\n", a);
printf("Variável: %d\n", a);printf("Pré-incremento: %d\n", ++a);printf("Variável: %d\n\n", a);printf("%d\n", b--);printf("%d\n", --b);
c += 1;printf("%d\n", c);
c -= 1;printf("%d\n", c);c *= 2;printf("%d\n", c);
c /= 2;printf("%d\n", c);
}
Operadores de Pós-incremento: Valor é usado antes de ser
incrementado.
Operadores de Pré-incremento: Valor é incrementado e depois
o novo valor é utilizado.
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>;
}
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 %d\n", i);}
}
Inicio do laço.
Condição.
Incremento ou decremento: indicando se o laço será
crescente ou decrescente.
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 %d\n", i);}
}
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);elseprintf("Número %d impar !!!\n", i);
}}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
EscopoNã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 !!!
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
FunçõesO 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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
FunçõesEstrutura 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.
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”.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE CONTROLE
FunçõesEstrutura 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.
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.
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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
VETORES E MATRIZES
VETORES E MATRIZES
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
VETORES E MATRIZES
VetoresO 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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
VetoresExemplo:
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.
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: %d\n", i, vetor[i]);}
}
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: %d\n", vetor[2]);printf("Valor na segunda posição: %d", vetor[1]);
}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
VetoresDetalhes:
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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
VetoresVetor 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.
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);}
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
VetoresFunçõ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.
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("%d\n", strlen(curso));printf("%s\n", strcat(curso, faculdade));
if (strcmp(curso, faculdade) == 0)printf("Strings iguais !!!");
elseprintf("São diferentes !!!");
}
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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
MatrizesExemplo:
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
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");}
}
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
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
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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
ESTRUTURAS DE DADOS
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
EstruturasO 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
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
EstruturasExemplo: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.
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
EstruturasMais 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++ !!!
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
ESTRUTURAS DE DADOS
EstruturasEstruturas 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.
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
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;
12
3
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("%d\n",sizeof(aluno_anhanguera.nome));}
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("%d\n",sizeof(aluno_anhanguera.nome));printf("%d\n",sizeof(aluno_anhanguera.ra));printf("%d\n",sizeof(aluno_anhanguera.serie));printf("%d\n",sizeof(aluno_anhanguera.turma));printf("%d\n",sizeof(aluno_anhanguera.curso));printf("%d\n",sizeof(aluno_anhanguera));
}
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("%c\n", demo.caracter);
printf("%.2lf\n", demo.valor1);
printf("%.2f\n", demo.valor2);
printf("%d\n", demo.valor3);}
Atribuindo valores para membros de uma função:
Estruturas
ESTRUTURAS DE DADOS
Atribuição de valores.
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("%c\n", demo.caracter);printf("%.2lf\n", demo.valor1);printf("%.2f\n", demo.valor2);printf("%d\n", demo.valor3);
}
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("%s\n", demo.string);printf("%d\n", demo.vetor_inteiro[0]);printf("%d\n", demo.vetor_inteiro[2]);printf("%.2lf\n", demo.vetor_double[4]);
}
Vetor de char usar strcpy.
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);
}
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("%s\n", nome);printf("%d\n", ra);
}
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.
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
Obrigado !!!
ANHANGUERA – 2016.2
Top Related