Atpaula3 150906041855-lva1-app6892

51
ANHANGUERA – 2015.2 ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃO AULA 03 – LINGUAGENS DE PROGRAMAÇÃO Prof. Thomás da Costa [email protected]

Transcript of Atpaula3 150906041855-lva1-app6892

Page 1: Atpaula3 150906041855-lva1-app6892

ANHANGUERA – 2015.2

ALGORITMOS E TÉCNICAS DE PROGRAMAÇÃOAULA 03 – LINGUAGENS DE PROGRAMAÇÃO

Prof. Thomás da [email protected]

Page 2: Atpaula3 150906041855-lva1-app6892

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

LINGUAGENS DE PROGRAMAÇÃO

LINGUAGENS DE PROGRAMAÇÃO

Page 3: Atpaula3 150906041855-lva1-app6892

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

Aviso

LINGUAGENS 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 4: Atpaula3 150906041855-lva1-app6892

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

Programação em Pares

LINGUAGENS DE PROGRAMAÇÃO

Detalhes:

• Dois programadores compartilham o desenvolvimento de um determinadoprograma.

• 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 5: Atpaula3 150906041855-lva1-app6892

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

Desenvolvendo Programas

LINGUAGENS 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 6: Atpaula3 150906041855-lva1-app6892

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

Compilação

LINGUAGENS DE PROGRAMAÇÃO

Compilando um programa:

• Escrevemos o programa em uma linguagem conhecida facilmente por umhumano.

• 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 7: Atpaula3 150906041855-lva1-app6892

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

Compilação

LINGUAGENS DE PROGRAMAÇÃO

Como acontece:

Programa Fonte

CompiladorCódigo Objeto

Link Editor

Bibliotecas

Programa Executável

Page 8: Atpaula3 150906041855-lva1-app6892

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

Compilação

LINGUAGENS 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 9: Atpaula3 150906041855-lva1-app6892

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 10: Atpaula3 150906041855-lva1-app6892

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

LINGUAGENS DE PROGRAMAÇÃO

Saída do Programa:

Primeiro Programa em C

Page 11: Atpaula3 150906041855-lva1-app6892

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

Primeiro Programa em C

LINGUAGENS 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 12: Atpaula3 150906041855-lva1-app6892

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 13: Atpaula3 150906041855-lva1-app6892

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

LINGUAGENS DE PROGRAMAÇÃO

Saída do Programa:

Primeiro Programa em C

Page 14: Atpaula3 150906041855-lva1-app6892

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

Compilando um programa

LINGUAGENS DE PROGRAMAÇÃO

Comandos:

• F9 compila o programa.• F10 executa um programa.• F11 compila e executa um programa.

Page 15: Atpaula3 150906041855-lva1-app6892

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

Compilando um programa

LINGUAGENS DE PROGRAMAÇÃO

Arquivos:

Código fonte

Executável

Page 16: Atpaula3 150906041855-lva1-app6892

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

Indentação do Código-Fonte

LINGUAGENS DE PROGRAMAÇÃO

O que é:

É uma forma de deixar mais legível o código-fonte de um programa, usandotabulações e espaços entre comandos.

Vamos ver um exemplo !!!

Page 17: Atpaula3 150906041855-lva1-app6892

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

Indentação do Código-Fonte

LINGUAGENS 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 18: Atpaula3 150906041855-lva1-app6892

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

Indentação do Código-Fonte

LINGUAGENS 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 19: Atpaula3 150906041855-lva1-app6892

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

Variáveis

LINGUAGENS 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 20: Atpaula3 150906041855-lva1-app6892

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

Variáveis

LINGUAGENS DE PROGRAMAÇÃO

Declaração:

int valor;

Para declarar uma variável precisamos de um tipo e um nome, seguido deponto-e-vírgula.

Tipo

Nome

Page 21: Atpaula3 150906041855-lva1-app6892

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 22: Atpaula3 150906041855-lva1-app6892

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

Variáveis

LINGUAGENS 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 23: Atpaula3 150906041855-lva1-app6892

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

Variáveis

LINGUAGENS DE PROGRAMAÇÃO

Nomes de variáveis:

As seguintes palavras são nomes reservados da Linguagem C e não podem serutilizados 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 24: Atpaula3 150906041855-lva1-app6892

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;

}

Page 25: Atpaula3 150906041855-lva1-app6892

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

Variáveis

LINGUAGENS DE PROGRAMAÇÃO

Atribuição:

Para atribuir um valor para uma variável utilizamos o operador = com o tipocorrespondente 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 26: Atpaula3 150906041855-lva1-app6892

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

Variáveis

LINGUAGENS 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

Page 27: Atpaula3 150906041855-lva1-app6892

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

Variáveis

LINGUAGENS 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

Page 28: Atpaula3 150906041855-lva1-app6892

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 29: Atpaula3 150906041855-lva1-app6892

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

Variáveis

LINGUAGENS DE PROGRAMAÇÃO

Modificadores:

• Algumas variáveis podem ser modificadas de acordo com algumas palavrasreservadas:

• 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 30: Atpaula3 150906041855-lva1-app6892

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("%d\n", sizeof(letra));

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

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

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

}

Page 31: Atpaula3 150906041855-lva1-app6892

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

Entrada de Dados

LINGUAGENS 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 32: Atpaula3 150906041855-lva1-app6892

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 33: Atpaula3 150906041855-lva1-app6892

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

Entrada de Dados

LINGUAGENS DE PROGRAMAÇÃO

Page 34: Atpaula3 150906041855-lva1-app6892

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

Imprimindo e capturando valores

LINGUAGENS DE PROGRAMAÇÃO

Variáveis:

• Os comandos printf e scanf precisam de determinados operadores paraidentificar 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

Page 35: Atpaula3 150906041855-lva1-app6892

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 36: Atpaula3 150906041855-lva1-app6892

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

Constantes

LINGUAGENS DE PROGRAMAÇÃO

Detalhes:

• São variáveis em que o valor não pode ser alterado em tempo de execuçãodo programa.

• É declarado pela palavra reservada const antes da declaração da variável.

const double PI = 3.14159265359;

Page 37: Atpaula3 150906041855-lva1-app6892

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 38: Atpaula3 150906041855-lva1-app6892

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

Operadores Matemáticos

LINGUAGENS 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 39: Atpaula3 150906041855-lva1-app6892

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 40: Atpaula3 150906041855-lva1-app6892

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 41: Atpaula3 150906041855-lva1-app6892

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 42: Atpaula3 150906041855-lva1-app6892

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 43: Atpaula3 150906041855-lva1-app6892

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 44: Atpaula3 150906041855-lva1-app6892

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:

LINGUAGENS DE PROGRAMAÇÃO

Operador Significado

&& Conjunção (AND ou E)

|| Disjunção (OR ou OU)

! Negação (NOT ou NÃO)

Page 45: Atpaula3 150906041855-lva1-app6892

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 46: Atpaula3 150906041855-lva1-app6892

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

Comentários no Código

LINGUAGENS 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

Page 47: Atpaula3 150906041855-lva1-app6892

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

}

Page 48: Atpaula3 150906041855-lva1-app6892

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

Desafio

LINGUAGENS 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 49: Atpaula3 150906041855-lva1-app6892

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 50: Atpaula3 150906041855-lva1-app6892

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

Resumo

LINGUAGENS 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 51: Atpaula3 150906041855-lva1-app6892

Obrigado !!!

ANHANGUERA – 2015.2