SlideShare una empresa de Scribd logo
1 de 150
ANHANGUERA – 2016.2
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO
CURSO COMPLETO
Prof. Thomás da Costa
thomascosta@aedu.com
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
thomascosta@aedu.com
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 aprender
Onde 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 Utilizadas
Treinamento em Linguagem C Curso Completo Mod.1
Mizrahi, Victorine Viviane
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
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
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ó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
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.
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.
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.
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.
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.
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 !!!
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.
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)
ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa
IDE
Orwell Dev-C++:
FUNDAMENTOS DE ALGORITMOS
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/
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 ERRO
int 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 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
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
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.
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 float
long double numero_pi;
printf("%dn", sizeof(letra));
printf("%dn", sizeof(idade));
printf("%dn", sizeof(salario));
printf("%dn", 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 Operador
char %c
int %d
float %f
double %lf
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");
}
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ó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)
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 bloco
Autor: 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 bloco
Autor: 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", &nota_b1);
printf("Digite a nota da B2:");
scanf("%lf", &nota_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
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.
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>
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.
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", &nota_b1);
printf("Digite a nota da B2:");
scanf("%lf", &nota_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 !!!");
}
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>;
}
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.
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();
}
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
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.
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);
}
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>
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.
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 !!!");
}
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çã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;
}
}
}
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çã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.
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;
}
}
}
}
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çã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.
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: %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.
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 %dn", 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 %dn", 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);
else
printf("Número %d impar !!!n", i);
}
}
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 !!!
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
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.
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çõ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.
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
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.
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.
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]);
}
}
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]);
}
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.
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.
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
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.
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 !!!");
}
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
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
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
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
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.
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++ !!!
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.
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;
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));
}
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));
}
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.
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);
}
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.
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("%sn", nome);
printf("%dn", 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

Más contenido relacionado

La actualidad más candente

Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAislan Rafael
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação CGercélia Ramos
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareSuzana Viana Mota
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de SoftwareLeinylson Fontinele
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Gercélia Ramos
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugolGabriel Faustino
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Gercélia Ramos
 
Lógica e Matemática Computacional - Aula 02
Lógica e Matemática Computacional - Aula 02Lógica e Matemática Computacional - Aula 02
Lógica e Matemática Computacional - Aula 02thomasdacosta
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Mariana Camargo
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de HardwareMiguel Correia
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasClayton de Almeida Souza
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem Capolllorj
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresGilvan Latreille
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de SistemasGuilherme
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Sérgio Souza Costa
 

La actualidad más candente (20)

Aula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e ProgramaçãoAula 01 - Algoritmo e Programação
Aula 01 - Algoritmo e Programação
 
Introdução a Linguagem de Programação C
Introdução a Linguagem de Programação CIntrodução a Linguagem de Programação C
Introdução a Linguagem de Programação C
 
Aula 03 - Hardware e Software
Aula 03 - Hardware e SoftwareAula 03 - Hardware e Software
Aula 03 - Hardware e Software
 
Aula 1 - Introdução a Engenharia de Software
Aula 1 -  Introdução a Engenharia de SoftwareAula 1 -  Introdução a Engenharia de Software
Aula 1 - Introdução a Engenharia de Software
 
Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)Descritiva Narrativa (Lógica de Programação)
Descritiva Narrativa (Lógica de Programação)
 
Formatando o computador
Formatando o computadorFormatando o computador
Formatando o computador
 
Aula01 - Logica de Programação
Aula01 - Logica de ProgramaçãoAula01 - Logica de Programação
Aula01 - Logica de Programação
 
Lista de exercícios em portugol
Lista de exercícios em portugolLista de exercícios em portugol
Lista de exercícios em portugol
 
Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)Pseudocódigo ou Portugol (Lógica de Programação)
Pseudocódigo ou Portugol (Lógica de Programação)
 
Lógica e Matemática Computacional - Aula 02
Lógica e Matemática Computacional - Aula 02Lógica e Matemática Computacional - Aula 02
Lógica e Matemática Computacional - Aula 02
 
Visualg
VisualgVisualg
Visualg
 
Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }Lógica de programação { para iniciantes }
Lógica de programação { para iniciantes }
 
Arquitetura de Hardware
Arquitetura de HardwareArquitetura de Hardware
Arquitetura de Hardware
 
Introducao a informatica
Introducao a informaticaIntroducao a informatica
Introducao a informatica
 
Informática Básica - Aula 03 - Hardware
Informática Básica - Aula 03 - HardwareInformática Básica - Aula 03 - Hardware
Informática Básica - Aula 03 - Hardware
 
Conceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de SistemasConceitos Básicos Sobre Analise de Sistemas
Conceitos Básicos Sobre Analise de Sistemas
 
Introdução a Linguagem C
Introdução a Linguagem CIntrodução a Linguagem C
Introdução a Linguagem C
 
Aula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de ComputadoresAula Introdução a Arquitetura e Organização de Computadores
Aula Introdução a Arquitetura e Organização de Computadores
 
Análise e Projeto de Sistemas
Análise e Projeto de SistemasAnálise e Projeto de Sistemas
Análise e Projeto de Sistemas
 
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento Engenharia de Software - Conceitos e Modelos de Desenvolvimento
Engenharia de Software - Conceitos e Modelos de Desenvolvimento
 

Similar a Algoritmos e Técnicas de Programação - Curso Completo

Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01thomasdacosta
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completothomasdacosta
 
Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02thomasdacosta
 
Programação Concorrente - Aula 01
Programação Concorrente - Aula 01Programação Concorrente - Aula 01
Programação Concorrente - Aula 01thomasdacosta
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSprofjotamarcosduarte
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02thomasdacosta
 
Organização de Computadores - Aula 01
Organização de Computadores - Aula 01Organização de Computadores - Aula 01
Organização de Computadores - Aula 01thomasdacosta
 
Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04thomasdacosta
 
Apostila de algoritimo super básica
Apostila de algoritimo super básicaApostila de algoritimo super básica
Apostila de algoritimo super básicaPablo Verlly Moreira
 
Lógica e Matemática Computacional - Aula 01
Lógica e Matemática Computacional - Aula 01Lógica e Matemática Computacional - Aula 01
Lógica e Matemática Computacional - Aula 01thomasdacosta
 
(A02) LabMM3 - Introdução à programação
(A02) LabMM3 - Introdução à programação(A02) LabMM3 - Introdução à programação
(A02) LabMM3 - Introdução à programaçãoCarlos Santos
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programaçãomaceca21
 
Curso de Informática para Concurso PC-RJ
Curso de Informática para Concurso PC-RJCurso de Informática para Concurso PC-RJ
Curso de Informática para Concurso PC-RJEstratégia Concursos
 
Curso Informática para Concurso PC-RJ - Inspetor
Curso Informática para Concurso PC-RJ - InspetorCurso Informática para Concurso PC-RJ - Inspetor
Curso Informática para Concurso PC-RJ - InspetorEstratégia Concursos
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01thomasdacosta
 

Similar a Algoritmos e Técnicas de Programação - Curso Completo (20)

Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01Algoritmos e Estrutura de Dados - Aula 01
Algoritmos e Estrutura de Dados - Aula 01
 
Programação Concorrente - Curso Completo
Programação Concorrente - Curso CompletoProgramação Concorrente - Curso Completo
Programação Concorrente - Curso Completo
 
Atpaula3 150906041855-lva1-app6892
Atpaula3 150906041855-lva1-app6892Atpaula3 150906041855-lva1-app6892
Atpaula3 150906041855-lva1-app6892
 
Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02Algoritmos e Técnicas de Programação - Aula 02
Algoritmos e Técnicas de Programação - Aula 02
 
Programação Concorrente - Aula 01
Programação Concorrente - Aula 01Programação Concorrente - Aula 01
Programação Concorrente - Aula 01
 
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOSAULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
AULA 06 - REVISÃO DE CONCEITOS INICIAIS DE ALGORITMOS
 
Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01Programação de Sistemas Distribuídos - Aula 01
Programação de Sistemas Distribuídos - Aula 01
 
Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02Algoritmos e Estrutura de Dados - Aula 02
Algoritmos e Estrutura de Dados - Aula 02
 
Organização de Computadores - Aula 01
Organização de Computadores - Aula 01Organização de Computadores - Aula 01
Organização de Computadores - Aula 01
 
Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04Lógica e Matemática Computacional - Aula 04
Lógica e Matemática Computacional - Aula 04
 
Apostila de algoritimo super básica
Apostila de algoritimo super básicaApostila de algoritimo super básica
Apostila de algoritimo super básica
 
Lógica e Matemática Computacional - Aula 01
Lógica e Matemática Computacional - Aula 01Lógica e Matemática Computacional - Aula 01
Lógica e Matemática Computacional - Aula 01
 
(A02) LabMM3 - Introdução à programação
(A02) LabMM3 - Introdução à programação(A02) LabMM3 - Introdução à programação
(A02) LabMM3 - Introdução à programação
 
Lp m1(parte1)
Lp m1(parte1)Lp m1(parte1)
Lp m1(parte1)
 
Aula 00 (1)
Aula 00 (1)Aula 00 (1)
Aula 00 (1)
 
01 fundamentos de programação
01   fundamentos de programação01   fundamentos de programação
01 fundamentos de programação
 
Aula 1
Aula 1Aula 1
Aula 1
 
Curso de Informática para Concurso PC-RJ
Curso de Informática para Concurso PC-RJCurso de Informática para Concurso PC-RJ
Curso de Informática para Concurso PC-RJ
 
Curso Informática para Concurso PC-RJ - Inspetor
Curso Informática para Concurso PC-RJ - InspetorCurso Informática para Concurso PC-RJ - Inspetor
Curso Informática para Concurso PC-RJ - Inspetor
 
Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01Estrutura de Dados - Aula 01
Estrutura de Dados - Aula 01
 

Más de thomasdacosta

Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produçãothomasdacosta
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03thomasdacosta
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02thomasdacosta
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02thomasdacosta
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03thomasdacosta
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06thomasdacosta
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05thomasdacosta
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07thomasdacosta
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06thomasdacosta
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04thomasdacosta
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05thomasdacosta
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05thomasdacosta
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Javathomasdacosta
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04thomasdacosta
 
Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03thomasdacosta
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04thomasdacosta
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03thomasdacosta
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03thomasdacosta
 

Más de thomasdacosta (20)

Azure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a ProduçãoAzure Functions e Java: Do Desenvolvimento a Produção
Azure Functions e Java: Do Desenvolvimento a Produção
 
Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03Programação de Sistemas Distribuídos - Aula 03
Programação de Sistemas Distribuídos - Aula 03
 
Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02Programação de Sistemas Distribuídos - Aula 02
Programação de Sistemas Distribuídos - Aula 02
 
Organização de Computadores - Aula 02
Organização de Computadores - Aula 02Organização de Computadores - Aula 02
Organização de Computadores - Aula 02
 
Organização de Computadores - Aula 03
Organização de Computadores - Aula 03Organização de Computadores - Aula 03
Organização de Computadores - Aula 03
 
Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06Redes de Computadores - Exercícios 06
Redes de Computadores - Exercícios 06
 
Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05Redes de Computadores - Exercícios 05
Redes de Computadores - Exercícios 05
 
Programação Concorrente - Aula 07
Programação Concorrente - Aula 07Programação Concorrente - Aula 07
Programação Concorrente - Aula 07
 
Programação Concorrente - Aula 06
Programação Concorrente - Aula 06Programação Concorrente - Aula 06
Programação Concorrente - Aula 06
 
Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04Redes de Computadores - Exercícios 04
Redes de Computadores - Exercícios 04
 
Redes de Computadores - Aula 05
Redes de Computadores - Aula 05Redes de Computadores - Aula 05
Redes de Computadores - Aula 05
 
Programação Concorrente - Aula 05
Programação Concorrente - Aula 05Programação Concorrente - Aula 05
Programação Concorrente - Aula 05
 
Linguagem de Programação Java
Linguagem de Programação JavaLinguagem de Programação Java
Linguagem de Programação Java
 
Programação Concorrente - Aula 04
Programação Concorrente - Aula 04Programação Concorrente - Aula 04
Programação Concorrente - Aula 04
 
Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03Redes de Computadores - Exercícios 03
Redes de Computadores - Exercícios 03
 
Redes de Computadores - Aula 04
Redes de Computadores - Aula 04Redes de Computadores - Aula 04
Redes de Computadores - Aula 04
 
Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05Algoritmos e Estrutura de Dados - Aula 05
Algoritmos e Estrutura de Dados - Aula 05
 
Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04Algoritmos e Estrutura de Dados - Aula 04
Algoritmos e Estrutura de Dados - Aula 04
 
Programação Concorrente - Aula 03
Programação Concorrente - Aula 03Programação Concorrente - Aula 03
Programação Concorrente - Aula 03
 
Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03Algoritmos e Estrutura de Dados - Aula 03
Algoritmos e Estrutura de Dados - Aula 03
 

Algoritmos e Técnicas de Programação - Curso Completo

  • 1. ANHANGUERA – 2016.2 ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO CURSO COMPLETO Prof. Thomás da Costa thomascosta@aedu.com
  • 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", &nota_b1); printf("Digite a nota da B2:"); scanf("%lf", &nota_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", &nota_b1); printf("Digite a nota da B2:"); scanf("%lf", &nota_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