150

Click here to load reader

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

Embed Size (px)

Citation preview

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

ANHANGUERA – 2016.2

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃOCURSO COMPLETO

Prof. Thomás da [email protected]

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

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

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

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

[email protected]

https://github.com/thomasdacosta

Prof. Thomás da Costa

https://professorthomasdacosta.wordpress.com

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

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 !!!

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

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.

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

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.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

APRESENTAÇÃO

• Uma linguagem de programação.• Vamos estudar algoritmos.• O básico para criar programas de computador.• Aplicações simples de calcular média, somar números e criar uma

calculadora.• Não iremos criar aplicações mais complexas, mas é o básico para iniciar a

carreira de programador.• Nossas aplicações serão desenvolvidas sem interface gráfica para o usuário,

pois não é o escopo dessa matéria.

O que vamos aprenderOnde tudo começa:

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

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

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

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

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

APRESENTAÇÃO

Bibliografias UtilizadasTreinamento em Linguagem C Curso Completo Mod.1Mizrahi, Victorine Viviane

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

APRESENTAÇÃO

Bibliografias UtilizadasAlgoritmos e Lógica de Programação - 2ª EdGomes, Marcelo Marques; Soares, Marcio Vieira; Souza, Marco Antonio Furlan de

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

APRESENTAÇÃO

• Conteúdo da aula nos seguintes sites:

https://professorthomasdacosta.wordpress.com/

https://www.facebook.com/ProfThomasDaCosta/

http://pt.slideshare.net/thomasdacosta/presentations

• Será disponibilizado 1 dia depois da aula.• Não esqueçam de sempre baixar o material da aula quando

disponibilizado.• Siga os sites acima e a página do Facebook para ficar atualizado sobre o

material e outros assuntos relacionados a tecnologia.• E-mail do Professor: [email protected]

Material da Aula

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

APRESENTAÇÃO

Vamos iniciar nosso curso !!!

Na próxima aula !!!

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

FUNDAMENTOS DE ALGORITMOS

FUNDAMENTOS DE ALGORITMOS

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

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 !!!

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

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 é:

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

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.

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

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:

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

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.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Torre de HanóiO que utilizamos para resolver o problema:• Utilizamos lógica para resolver o problema.• Um raciocínio lógico.• Uma sequência definida e ordenada de passos.• Tivemos que seguir a sequência, para a correta resolução do problema.• Tínhamos um objetivo. Como todo programa ou software.• Foi escrita a sequência de passos, mostrando o movimento dos discos. Isto

é um algoritmo.• Foi escrita em uma linguagem conhecida e interpretada facilmente.• Computadores utilizam de linguagem para escrever algoritmos.• Na computação existem várias linguagens de desenvolvimento.

FUNDAMENTOS DE ALGORITMOS

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

AlgoritmoO que é?:

FUNDAMENTOS DE ALGORITMOS

É uma sequência lógica de passos para atingir um determinado objetivo. Em computação é uma sequência finita de instruções ou comandos para resolver um problema computacional.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

AlgoritmoDetalhes:

FUNDAMENTOS DE ALGORITMOS

• Para resolver um problema temos várias soluções.• Então....um problema não tem um único algoritmo.• Cada desenvolvedor tem um pensamento para criar um algoritmo.• Um algoritmo pode ser melhor que o outro para resolver um problema.• Estudar algoritmo requer bastante dedicação.• Algoritmo é algo do nosso dia-a-dia.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

AlgoritmoExemplos:

FUNDAMENTOS DE ALGORITMOS

• Somar dois números.• Trocar um pneu furado.• Trocar a lâmpada queimada.• Tomar banho.• Cozinhar um bolo.• Jogar videogame.• Calcular raiz quadrada.• Viajar no final de semana.• Jogar o jogo da velha.• Fazer a prova e ser aprovado.• Multiplicar dois números.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

AlgoritmoExercícios:

FUNDAMENTOS DE ALGORITMOS

• Criar o algoritmo de fritar um ovo em linguagem natural:

• Resposta:1. Pegar frigideira, ovo, óleo e sal.2. Colocar óleo na frigideira.3. Acender o fogo.4. Colocar a frigideira no fogo.5. Esperar o óleo esquentar.6. Colocar o ovo.7. Retirar quando pronto.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

AlgoritmoExercícios:

FUNDAMENTOS DE ALGORITMOS

• Criar o algoritmo de mascar um chiclete em linguagem natural:

• Resposta:1. Pegar o chiclete.2. Retirar do papel.3. Mastigar.4. Jogar o papel no lixo.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

AlgoritmoExercícios:

FUNDAMENTOS DE ALGORITMOS

• Criar o algoritmo para jogar um jogo no Playstation em linguagem natural:

• Resposta:1. Ligar a TV.2. Ligar o Playstation (pode ser 3 ou o 4 !!!).3. Ligar o controle.4. Colocar o jogo no drive.5. Escolher o jogo com o botão X.6. Jogar o jogo até cansar !!!

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

AlgoritmoExercícios:

FUNDAMENTOS DE ALGORITMOS

• Criar o algoritmo para calcular a média da matéria em linguagem natural:

• Resposta:1. Obter a média da B1.2. Obter a média da B2.3. Efetuar o cálculo de 40% da B14. Efetuar o cálculo de 60% da B25. Somar os cálculos obtidos.6. Se a média for maior ou igual a 6, aluno aprovado.7. Se a média for menor que 6, aluno reprovado.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

AlgoritmoComo são feitos os programas de computador:

FUNDAMENTOS DE ALGORITMOS

• Todo programa é feito com algoritmos.• Para escrever os algoritmos precisamos de uma linguagem.• Existem várias linguagens no mercado. (Se lembram?)• Para escrever um programa em uma linguagem utilizamos um outro

programa.• Este programa é conhecido como IDE (Integrated Development

Environment)

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

IDEOrwell Dev-C++:

FUNDAMENTOS DE ALGORITMOS

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

IDEOrwell Dev-C++:

FUNDAMENTOS DE ALGORITMOS

• Vamos programar em uma linguagem conhecida como C. • Simplesmente C !!!• Para baixar o programa utilize o endereço abaixo:

• https://sf.net/projects/orwelldevcpp/

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

LINGUAGEM DE PROGRAMAÇÃO

LINGUAGEM DE PROGRAMAÇÃO

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

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

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

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.

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

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.

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

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.

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

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

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

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 !!!

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

LINGUAGEM DE PROGRAMAÇÃO

Saída do Programa:

Primeiro Programa em C

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

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.

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

LINGUAGEM DE PROGRAMAÇÃO

Saída do Programa:

Primeiro Programa em C

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

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.

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

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

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

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 !!!

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

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

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

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");}

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

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

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

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

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

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

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

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: { ( + - * / \ ; . , ?

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> int main(){

// CÓDIGO COM ERROint valor;int VALORES;int val_salario;int 3;int 3valores;int !valor;

}

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

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.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Variáveis

LINGUAGEM DE PROGRAMAÇÃO

Tipos:

Tipo Valores Exemplochar Caracteres A,B,C,$,1int Números Inteiros 10,20,30,1,5,6

float Números Reais 12560.34

double Números Reais 3.14159265359

bool Valores Lógicos true ou false

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Variáveis

LINGUAGEM DE PROGRAMAÇÃO

Tamanhos:

Tipo Tamanho Faixa Mínimachar 1 byte -127 a 127

int 4 bytes -2.147.483.648 a 2.147.483.647

float 4 bytes 6 dígitos de precisãodouble 8 bytes 15 dígitos de precisão

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> int main(){

char letra;int idade;float salario;double numero_pi;

 printf("%d\n", sizeof(letra));printf("%d\n", sizeof(idade));printf("%d\n", sizeof(salario));printf("%d\n", sizeof(numero_pi));

}

Operador sizeof retorna o tamanho de uma variável em bytes.

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

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.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> int main(){

unsigned char letra;unsigned short int idade;float salario; // Não funciona com floatlong double numero_pi;

 printf("%d\n", sizeof(letra));printf("%d\n", sizeof(idade));printf("%d\n", sizeof(salario));printf("%d\n", sizeof(numero_pi));

}

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

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

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

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.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Entrada de Dados

LINGUAGEM DE PROGRAMAÇÃO

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Imprimindo e capturando valores

LINGUAGEM DE PROGRAMAÇÃO

Variáveis:• Os comandos printf e scanf precisam de determinados operadores para

identificar o tipo de variável que será impressa ou capturada pelo teclado.• No exemplo abaixo o operador %d captura ou imprime um valor inteiro.

scanf("%d", &idade);printf("%d", idade);

Tipo Operadorchar %cint %d

float %fdouble %lf

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> int main(){

// Imprime um inteiroprintf("%d\n", 79);// Imprime um inteiro com espaço em brancoprintf("%4d\n", 79);// Imprime um inteiro com zero a esquerdaprintf("%04d\n", 79);// Imprime ponto flutuanteprintf("%f\n", 3.6);// Imprime em notação científicaprintf("%e\n", 16.567837);// Imprime um número com uma determinada // qtd. de casas decimaisprintf("%.2f\n", 16.567837);// Imprime um tipo doubleprintf("%lf\n", 16.567837);// Imprime um caracterprintf("%c\n", 65);// Imprime um conjunto de caracteresprintf("%s\n", "Meu primeiro programa");

}

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

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;

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

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);}

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

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

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

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

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

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

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

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

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

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

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Operadores LógicosUm pouco de lógica proposicional:Os operadores lógicos na Linguagem C seguem a tabela abaixo:

LINGUAGEM DE PROGRAMAÇÃO

Operador Significado&& Conjunção (AND ou E)|| Disjunção (OR ou OU)! Negação (NOT ou NÃO)

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

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);

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Comentários no Código

LINGUAGEM DE PROGRAMAÇÃO

Documentando o código:• Quando criamos um programa, sempre é necessário documentá-lo.• Outros desenvolvedores podem efetuar a manutenção do seu código.• Código bem documentado ajuda os desenvolvedores a entender mais

facilmente.• O código documentado ou comentado é ignorado pelo compilador.• Existe o comentário em bloco e o comentário em linha.

/**Comentário em blocoAutor: Prof. Thomás da Costa

**/

// Exibe a mensagem 'Olá Mundo' na tela

Comentário em Bloco

Comentário em Linha

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> /**

Comentário em blocoAutor: Prof. Thomás da Costa

**/int main(){

// Exibe a mensagem 'Olá Mundo' na tela

printf("Olá Mundo");}

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

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.

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

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);

}

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

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.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE CONTROLE

ESTRUTURAS DE CONTROLE

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE CONTROLE

CondicionaisO que é?:É uma instrução ou comando dentro de uma programa em C, que determina a veracidade de uma determinada condição. Essa condição normalmente é formada por uma ou mais proposições simples.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE CONTROLE

CondicionaisCondicional IF – ELSE:A primeira instrução condicional que vamos estudar é o comando if. Neste comando, o primeiro bloco determinada que a condição é verdadeira. O segundo bloco que começa pela instrução else, determina que a condição é falsa.

if (condição)<resultado

verdadeiro>else

<resultado falso>

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE CONTROLE

CondicionaisExemplo:

if (media >= 6)printf("Aluno

aprovado !!!");else

printf("Aluno reprovado !!!");

Condição é verdadeira.

Condição é falsa.

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

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: %.2f\n", media);

if (media >= 6)printf("Aluno aprovado !!!");

elseprintf("Aluno reprovado !!!");

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE CONTROLE

CondicionaisImportante:Em um bloco condicional if, quando as instruções seguintes ao if não estão dentro de chaves, somente a linha abaixo da condição será executada. Caso desejamos que o bloco condicional execute mais de uma linha, devemos incluir as chaves, criando um novo escopo. Isso é válido também para instrução else.

if (condição){

<instrução 1>;

<instrução 2>;}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE CONTROLE

CondicionaisExemplo:

if (numero >=0 && numero <= 10){

printf("Número válido !!!\n");printf("Número digitado: %d\n",

numero);}else

printf("Número inválido !!!\n");

As chaves colocam as linhas dentro de um escopo.

Sem chaves somente a linha seguinte é executada.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h>#include <conio.h> int main(){

int numero; 

setlocale(LC_ALL, "Portuguese"); 

printf("Digite um número entre 0 e 10: ");scanf("%d", &numero);

if (numero >=0 && numero <= 10){

printf("Número válido !!!\n");printf("Número digitado: %d\n", numero);}else

printf("Número inválido !!!\n");

printf("Bye !!!\n");getch();

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

CondicionaisOperadores:

ESTRUTURAS DE CONTROLE

Negação Conjunção

> Maior

>= Maior igual

< Menor

<= Menor igual

!= Diferente de

== Igual

= Atribuição de valores

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

CondicionaisProposições:No próximo exemplo, vamos estudar um problema com condições mais complexas. Essas condições, possuem as mesmas regras das expressões proposicionais.

ESTRUTURAS DE CONTROLE

Negação Conjunção Disjunção

! && ||

• A ordem de resolução dos conectivos segue a tabela abaixo.• Quando existir uma expressão com parênteses, eles deverão ser

resolvidos primeiro.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <stdbool.h>#include <locale.h> int main(){

setlocale(LC_ALL, "Portuguese"); 

bool p;bool q;bool r;p = true;q = false;r = true;

if (((q && r) || (!p && r)) && r)printf("Verdadeiro !!!\n");

elseprintf("Falso !!!\n");

printf("Resultado da expressão: %d\n", ((q && r) || (!p && r)) && r); }

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

CondicionaisCondicional IF – ELSE IF:

ESTRUTURAS DE CONTROLE

Em determinadas situações de um programa, pode existir mais de uma condição verdadeira em um comando if. Para resolver este problema, utilizamos o comando else if que verifica a veracidade de outras condições. Caso nenhuma das condições seja verdadeira, a condicional entra no bloco else.

if (condição 1)<resultado verdadeiro>

else if (condição 2)

<resultado verdadeiro>else

<resultado falso>

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

CondicionaisExemplo:

ESTRUTURAS DE CONTROLE

if (opcao_menu == 1)printf("Opção de incluir aluno

selecionado");else if (opcao_menu == 2)

printf("Opção de listar aluno selecionado");

else if (opcao_menu == 3)printf("Saindo !!!");

elseprintf("Opção inválida !!!");

Condições verdadeiras.

Condição falsa.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h> int main(){

setlocale(LC_ALL, "Portuguese");

int opcao_menu;printf("Digite uma opção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");

scanf("%d", &opcao_menu);

if (opcao_menu == 1)printf("Opção de incluir aluno selecionado");

else if (opcao_menu == 2)printf("Opção de listar aluno selecionado");

else if (opcao_menu == 3)printf("Saindo !!!");

elseprintf("Opção inválida !!!");

}

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

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;}

}

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

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.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h> int main(){

setlocale(LC_ALL, "Portuguese");int opcao_menu;printf("Digite uma opção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");scanf("%d", &opcao_menu);switch (opcao_menu){

case 1:{

printf("Opção de incluir aluno selecionado");break;}case 2:{printf("Opção de listar aluno selecionado");break;}case 3:{printf("Saindo !!!");break;}default:{printf("Opção inválida !!!");break;}

}}

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

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.

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

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>;

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Laços

ESTRUTURAS DE CONTROLE

Exemplo:

int opcao_menu = 0;

while (opcao_menu != 3){

system("cls");printf("Digite uma opção\

n");printf("1 - Incluir aluno\

n");printf("2 - Listar aluno\

n");printf("3 - Sair\n");

... }

Condição.

Bloco de comando que vai ser repetir enquanto a condição for verdadeira.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h>#include <stdlib.h>#include <conio.h> int main(){

setlocale(LC_ALL, "Portuguese");int opcao_menu = 0;while (opcao_menu != 3){

system("cls");printf("Digite uma opção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");scanf("%d", &opcao_menu);switch (opcao_menu){case 1:{

printf("Opção de incluir aluno selecionado.\n");getch();break;

}case 2:{

printf("Opção de listar aluno selecionado.\n");getch();break;

}case 3:{

printf("Saindo !!!\n");getch();break;

}default:{printf("Opção inválida !!!\n");getch();break;}}

}}

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

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);

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h>#include <stdlib.h>#include <conio.h> int main(){

setlocale(LC_ALL, "Portuguese");int opcao_menu;do{

system("cls");printf("Digite uma opção\n");printf("1 - Incluir aluno\n");printf("2 - Listar aluno\n");printf("3 - Sair\n");scanf("%d", &opcao_menu);switch (opcao_menu){

case 1:{

printf("Opção de incluir aluno selecionado.\n");getch();break;

}case 2:{

printf("Opção de listar aluno selecionado.\n");getch();break;

}case 3:{

printf("Saindo !!!\n");getch();break;

}default:{

printf("Opção inválida !!!\n");getch();break;

}}

} while (opcao_menu != 3);}

Este bloco é executado pelo menos uma vez, independente da condição,

pois a mesma é validada depois.

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h> int main(){

setlocale(LC_ALL, "Portuguese");

int a = 1;int b = 1;int c = 1;printf("Variável: %d\n", a);printf("Pós-incremento: %d\n", a++);printf("Variável: %d\n\n", a);

printf("Variável: %d\n", a);printf("Pré-incremento: %d\n", ++a);printf("Variável: %d\n\n", a);printf("%d\n", b--);printf("%d\n", --b);

c += 1;printf("%d\n", c);

c -= 1;printf("%d\n", c);c *= 2;printf("%d\n", c);

c /= 2;printf("%d\n", c);

}

Operadores de Pós-incremento: Valor é usado antes de ser

incrementado.

Operadores de Pré-incremento: Valor é incrementado e depois

o novo valor é utilizado.

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

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>;

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> int main(){

int i;for (i=0;i<=10;i++){

printf("Contando %d\n", i);}

}

Inicio do laço.

Condição.

Incremento ou decremento: indicando se o laço será

crescente ou decrescente.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h> int main(){

int i;int inicio, fim;

setlocale(LC_ALL, "Portuguese");

printf("Digite um número inicial:");scanf("%d", &inicio);

printf("Digite um número final:");scanf("%d", &fim);

for (i=inicio;i<=fim;i++){

printf("Contando %d\n", i);}

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h> int main(){

int i;int inicio, fim;

setlocale(LC_ALL, "Portuguese");

printf("Digite um número inicial:");scanf("%d", &inicio);

printf("Digite um número final:");scanf("%d", &fim);

for (i=inicio;i<=fim;i++){

if ((i % 2) == 0)printf("Número %d par !!!\n", i);elseprintf("Número %d impar !!!\n", i);

}}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

EscopoNão esquecer !!!:Em uma condicional ou em um laço, somente a instrução seguinte será executada. As instruções devem ser colocadas dentro de blocos com chaves, para que um conjunto de instruções seja executado.

ESTRUTURAS DE CONTROLE

Chaves !!!

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

FunçõesO que é?:São rotinas que tem como objetivo, executar trechos de códigos de forma modular, melhorando a organização do programa e evitando repetição de código. As funções são reutilizáveis dentro de um programa.

ESTRUTURAS DE CONTROLE

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE CONTROLE

FunçõesEstrutura de uma função:

Retorno da função.

Parâmetros da função.

Corpo da função.

Escopo de início e fim da função.

double somar(double x, double y){

double resultado = x + y;return resultado;

}

Nome da função.

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

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”.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE CONTROLE

FunçõesEstrutura de uma função:• Tipos de retorno da função:

• double, float, int, char, void e outros tipos• Parâmetros da função

• Cada parâmetro é composto pelo tipo, nome e separados por virgulas.

• Retorno da função:• Quando uma função deve retornar um valor, devemos usar a palavra

reservada return seguido de um valor, variável ou operação do mesmo tipo de retorno.

• Corpo da função:• Código fonte com a funcionalidade que a função deve executar.

• Protótipo:• As funções possuem protótipos para definir sua estrutura.

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

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.

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

VETORES E MATRIZES

VETORES E MATRIZES

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

VETORES E MATRIZES

VetoresO que é?:É um conjunto do mesmo tipo de variável com um tamanho definido. Um vetor possui um indexador para identificar a posição dentro do conjunto de variáveis. Este conjunto não pode possuir tipos diferentes.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

VetoresExemplo:

VETORES E MATRIZES

int vetor[5] = { 0, 1, 2, 3, 4 };

Tamanho de 5 posições.

Tipo do vetor.

Atribuindo valores para o vetor nas posições correspondentes.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h> int main(){

setlocale(LC_ALL, "Portuguese");

int vetor[5] = { 0, 1, 2, 3, 4 };int i;

for (i=0;i<=4;i++){

printf("posição: %d, valor: %d\n", i, vetor[i]);}

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h> int main(){

setlocale(LC_ALL, "Portuguese");

int vetor[5]; 

printf("Digite um valor na posição 3 do vetor: ");

vetor[1] = 100;scanf("%d", &vetor[2]);

printf("Valor digitado: %d\n", vetor[2]);printf("Valor na segunda posição: %d", vetor[1]);

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

VetoresDetalhes:

VETORES E MATRIZES

• Possui um índice que identifica a posição do elemento.• O vetor sempre começa no índice 0 e terminar no índice tamanho – 1.• Vetores armazenam uma quantidade definida de valores.• Vetores ocupam mais espaço de memória.• Possuem somente uma dimensão de tamanho.• Podemos inicializar os valores, quando declaramos a variável do tipo vetor.• Não suporta tipos diferentes dentro do mesmo vetor.• Percorremos vetores de forma crescente, decrescente ou a partir de uma

posição.• Podemos atribuir um valor para uma posição definida.• Quando atribuímos um valor para uma posição maior que a quantidade

suportada do vetor, o programa pode apresentar erros de memória.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

VetoresVetor especial:

VETORES E MATRIZES

• Um vetor de char é conhecido como um tipo string.• Normalmente o vetor do tipo char é um conjunto de caracteres.• Representam uma palavra.• Possui o mesmo formato dos outros vetores.• Podemos receber uma string do teclado através do comando scanf.

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

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);}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

VetoresFunções de um vetor de char:

VETORES E MATRIZES

• strlen – obtém o tamanho de uma string.• strcat – concatena duas strings.• strcmp – compara duas strings. Se forem iguais, retornar 0.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <locale.h>#include <string.h> int main(){

setlocale(LC_ALL, "Portuguese");

char curso[] = "Sistemas da Informação";char faculdade[] = " Anhanguera";

printf("%d\n", strlen(curso));printf("%s\n", strcat(curso, faculdade));

if (strcmp(curso, faculdade) == 0)printf("Strings iguais !!!");

elseprintf("São diferentes !!!");

}

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

MatrizesExemplo:

int valor[4][4] = {

{0, 0 ,0 ,0},

{0, 1 ,1 ,0},

{0, 1 ,1 ,0},

{0, 0 ,0 ,0}

};

Declaração de uma matriz

VETORES E MATRIZES

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

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");}

}

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

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

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

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

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

ESTRUTURAS DE DADOS

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

EstruturasO que é?:É um conjunto de variáveis que representam características de um determinado domínio ou de um tipo. A estrutura pode definir uma entidade e possui grande semelhança com registros de banco de dados. O agrupamento de variáveis pode ser de qualquer tipo, sendo denominado de membro da estrutura.

ESTRUTURAS DE DADOS

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

EstruturasExemplo:Quais são as informações de um Aluno para a Faculdade?• Nome.• Matrícula.• Série.• Turma.• Curso.

No exemplo acima temos a estrutura Aluno que contém as informações ou as características de um aluno. Muito semelhante a um registro de banco de dados.

Podemos dizer que em uma estrutura, estamos armazenando informações agrupadas logicamente.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

EstruturasMais um exemplo:Quais as informações de um Funcionário para uma Empresa?• Nome.• Dados Pessoais.• Data de Admissão.• Cargo.• Salário.• Setor/Área de Atuação.

Vamos ver como fazer uma estrutura em C/C++ !!!

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

EstruturasEstruturas em C/C++:

struct aluno{

char nome[255];int ra;int serie;int turma;char curso[100];

};

Nome da estrutura.

Palavra reservada que identifica uma

estrutura.

Membros da estrutura.

Chaves definem o início e o fim da estrutura.

Termina com ponto e vírgula.

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

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

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

ESTRUTURAS DE DADOS

Declarando uma variável do tipo Estrutura:

Estruturas

Existem 3 formas de declarar uma variável de estrutura:

struct aluno{

char nome[255];int ra;int serie;int turma;char curso[100];

} aluno_anhanguera; struct aluno aluno_tecnologia; typedef struct aluno aluno_curso;

12

3

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

Acessando membros de uma estrutura:

Estruturas

Para acessar um membro de uma estrutura utilizamos o operador ponto (.)

ESTRUTURAS DE DADOS

Acessando um membro.

O membro “nome” da estrutura será impresso na tela

int main(){

printf("%d\n",sizeof(aluno_anhanguera.nome));}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> struct aluno{

char nome[255];int ra;int serie;int turma;char curso[100];

} aluno_anhanguera; struct aluno aluno_tecnologia; typedef struct aluno aluno_curso; int main(){

printf("%d\n",sizeof(aluno_anhanguera.nome));printf("%d\n",sizeof(aluno_anhanguera.ra));printf("%d\n",sizeof(aluno_anhanguera.serie));printf("%d\n",sizeof(aluno_anhanguera.turma));printf("%d\n",sizeof(aluno_anhanguera.curso));printf("%d\n",sizeof(aluno_anhanguera));

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

int main(){

demo.caracter = 'A';demo.valor1 = 3.2;demo.valor2 = 6.7;demo.valor3 = 45;

printf("%c\n", demo.caracter);

printf("%.2lf\n", demo.valor1);

printf("%.2f\n", demo.valor2);

printf("%d\n", demo.valor3);}

Atribuindo valores para membros de uma função:

Estruturas

ESTRUTURAS DE DADOS

Atribuição de valores.

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> struct demonstracao{

char caracter;double valor1;float valor2;int valor3;

} demo; int main(){

demo.caracter = 'A';demo.valor1 = 3.2;demo.valor2 = 6.7;demo.valor3 = 45;

printf("%c\n", demo.caracter);printf("%.2lf\n", demo.valor1);printf("%.2f\n", demo.valor2);printf("%d\n", demo.valor3);

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h>#include <strings.h> struct demonstracao{

char string[100];int vetor_inteiro[10];double vetor_double[5];

} demo; int main(){

strcpy(demo.string, "Valor da String 1");

demo.vetor_inteiro[0] = 1;demo.vetor_inteiro[2] = 2;demo.vetor_double[4] = 5.6;

printf("%s\n", demo.string);printf("%d\n", demo.vetor_inteiro[0]);printf("%d\n", demo.vetor_inteiro[2]);printf("%.2lf\n", demo.vetor_double[4]);

}

Vetor de char usar strcpy.

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

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);

}

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

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa

#include <stdio.h> struct aluno{

char nome[100];int ra;

} aluno_tecnologia; void imprimir_aluno(char nome[], int ra); int main(){

printf("Digite o nome do aluno:");fgets(aluno_tecnologia.nome, sizeof(aluno_tecnologia.nome), stdin);

printf("Digite o RA do aluno:");scanf("%d", &aluno_tecnologia.ra);

imprimir_aluno(aluno_tecnologia.nome, aluno_tecnologia.ra);

} void imprimir_aluno(char nome[], int ra){

printf("%s\n", nome);printf("%d\n", ra);

}

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

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.

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

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

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

Obrigado !!!

ANHANGUERA – 2016.2