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

1.492 visualizações

Publicada em

Algoritmos e Técnicas de Programação - Anhanguera
CURSO COMPLETO

Publicada em: Tecnologia
1 comentário
10 gostaram
Estatísticas
Notas
Sem downloads
Visualizações
Visualizações totais
1.492
No SlideShare
0
A partir de incorporações
0
Número de incorporações
197
Ações
Compartilhamentos
0
Downloads
222
Comentários
1
Gostaram
10
Incorporações 0
Nenhuma incorporação

Nenhuma nota no slide

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

  1. 1. ANHANGUERA – 2016.2 ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO CURSO COMPLETO Prof. Thomás da Costa thomascosta@aedu.com
  2. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 15. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa APRESENTAÇÃO Vamos iniciar nosso curso !!! Na próxima aula !!!
  16. 16. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa FUNDAMENTOS DE ALGORITMOS FUNDAMENTOS DE ALGORITMOS
  17. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 31. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa IDE Orwell Dev-C++: FUNDAMENTOS DE ALGORITMOS
  32. 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. 33. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa LINGUAGEM DE PROGRAMAÇÃO LINGUAGEM DE PROGRAMAÇÃO
  34. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 64. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa Entrada de Dados LINGUAGEM DE PROGRAMAÇÃO
  65. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 82. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE CONTROLE ESTRUTURAS DE CONTROLE
  83. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 118. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa VETORES E MATRIZES VETORES E MATRIZES
  119. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 134. ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO – Prof. Thomás da Costa ESTRUTURAS DE DADOS ESTRUTURAS DE DADOS
  135. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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. 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
  150. 150. Obrigado !!! ANHANGUERA – 2016.2

×