Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano...
-
Upload
vitor-marinho-valente -
Category
Documents
-
view
251 -
download
27
Transcript of Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano...
Programação Computacional Aula 9: Meu primeiro programa em C
Profa. Madeleine Medrano
Ciclo de desenvolvimento de um programa
Roteiro Estrutura básica de um programa em C
Função printf (saída de informação – imprime na tela)
Diversas atividades
Estrutura do bloco de execução principal (main)
Todo programa em C deve possuir um “bloco” com o nome de “main”
Este é o ponto onde o programa inicia O programa segue executando linha a linha a partir do “main” Veja alguns exemplos:
»Note o símbolo “ ; “ no final de cada linha »Ele é o terminador de linha / comando
Blocos de execução fornecido pela linguagem
Deste forma, vamos conhecer “bloco de biblioteca” para imprimir na tela
A rotina “ printf “ é fornecida pela biblioteca “ <stdio.h> “
Permite apresentar na tela os valores de qualquer tipo de dado Utiliza o mecanismo de formatação, que permite traduzir a representação
interna de variáveis para a representação ASCII que pode ser apresentada na tela.
Formato básico:
int printf(const char *restrict format, .......);
»Note que printf é uma função, pois retorna valor (int)
Estrutura com múltiplos blocos de execução
Seria muito complicado ler e entender um código fonte se ele fosse escrito usando apenas um bloco de execução.
Imagine um programa que realiza cadastro de cliente, fornecedor e controla as contas a receber e a pagar
Se usarmos um único bloco de execução (ex. main), seria muito complicado “encontrar” as linhas de código responsável pelo cadastro de cliente
Pensando nisso, é comum que um programa utilize múltiplos blocos de execução, onde cada bloco de execução agrupa os comandos (linhas de código) envolvidos em uma dada tarefa (algoritmo)
Veja um exemplo:
Estrutura com múltiplos blocos de execução
Exemplo com “blocos” p/ calcular dois tipos de áreas
Nota: Observe o operador “ , “. Usado para encadear expressões.
Teste de Mesa (01)
Qual o valor das variáveis em cada linha de execução?!
Blocos de execução fornecido pela linguagem
Algumas operações (algoritmos) são comuns para diferentes tipos de programas. Exemplos:
Abrir um arquivo do disco Algoritmo simplificado/resumido:
Verificar se o arquivo existe e se tem permissão No disco rígido, achar e ler os bits que compõe esse arquivo Copiar esses bits para a memória
Imprimir na tela. Algoritmo simplificado/resumido: Copiar um conjunto de caracteres da memória p/ a placa de vídeo Limpar o estado dos pixels que estão em uma determinada região da tela Nessa mesma porção da tela, “acender” apenas os pixels para formar cada
caractere –Desenvolver esse tipo de algoritmo não é prático
Blocos de execução fornecido pela linguagem
Para resolver/amenizar as linguagens fornecem alguns “blocos prontos”. (ex. Imprimir na tela)
Esse tipo de bloco de execução é conhecido como “blocos de bibliotecas”. Que são conhecidos como:
Funções de biblioteca Sempre retornam um valor (ex. inteiro) Procedimento de biblioteca Não retornam valores
Veja alguns exemplos: <complex.h> Manipular números complexos
<errno.h> Teste de códigos de erro <math.h> Funções matemáticas <stdio.h> Manipulação de entrada/saída <stdlib.h> Alocação de memória
Nota: O conjunto de bibliotecas pode variar
Algoritmo
Meu primeiro programa em C
Imprimindo apenas alguns caracteres na tela Usando a função “ printf “
Meu primeiro programa em C
Imprimindo apenas alguns caracteres na tela Usando a função “ printf “ Como mostrar o conteúdo das variáveis?
Passando ela(s) como parâmetro para a função printf e informando o formato / tipo de dado. Veja:
–Note o símbolo “ %d “ »Ele é um dos símbolos usados pela rotina printf para mostrar o conteúdo de uma variável do tipo inteiro »Vamos ver outros símbolos
Meu primeiro programa em C
Símbolos usados para imprimir o conteúdo de variáveis
Meu primeiro programa em C
–Formatando os valores inteiros impressos na tela
Meu primeiro programa em C
Formatando os valores ponto flutuante impressos na tela Segue o mesmo padrão dos números inteiros, mas agora podemos formatar
a quantidade de casas após a virgula. –Veja:
–A saída na tela será: Hoje é dia 00000010.123457
Meu primeiro programa em C
Símbolos especiais usados pelo printf
Meu primeiro programa em C
Atividade - printf Qual a mensagem impressa pelos códigos abaixo?
Meu primeiro programa em C
Qual a mensagem impressa pelos códigos abaixo?
Meu primeiro programa em C
Qual a mensagem impressa pelos códigos abaixo?
•Neste, explique com suas palavras porque esses valores foram impressos.
programas em C
Qual a mensagem impressa pelos códigos abaixo?
•Neste, explique com suas palavras porque esses valores foram impressos.
programas em C
Qual a mensagem impressa pelos códigos abaixo?
•Neste, explique com suas palavras porque esses valores foram impressos.
Atividade - printf Fazer um programa em C que imprima o valor lógico de cada expressão abaixo.
Nota A = 3, B = 6 e C = 1: (A = B) E (B > C) (A <> B) OU (B < C) NÃO (A > B) (A < B) E (B > C) (A >= B) OU (B = C) NÃO (A <= B) (A > 3) E (C = 8) (A <> 2) OU (B <= 5) ((A = 3) OU (B >= 2)) E (C = 8) ((A = 3) E ((NÃO (B <= 4))) E (C = 8) ((A <> 8) OU (B = 4)) E (C > 2) (B > A) E (C <> A) (A > B) OU (B < 5)
Função scanf
scanf ("formatos", &var1, &var2,...) Exemplos: int i, j; float x; char c; scanf("%d", &i); scanf("%d %f", &j, &x); scanf("%c", &c); scanf("%s", nome);
Note o símbolo “ & “ usado para passar o endereço da variável e não o nome (detalhes nos próximos slides)
Algoritmo na linguagem C
Informando argumentos por referência
Até agora vimos como passar parâmetros por valor (“cópias”) O bloco não consegue alterar o valor da variável atribuído ao
bloco “chamador”. Exemplo:
–Ao final da execução qual o valor de A??
Informando argumentos por referência
Até agora vimos como passar parâmetros por valor O bloco não consegue alterar o valor da variável atribuído ao bloco “chamador”. E agora mudou
alguma coisa ?!?!?!?!?!?!?
Ao final da execução qual o valor de A??
Informando argumentos por referência
Imagine que um determinado “bloco” (função / procedimento) precise alterar o valor de n variáveis do bloco “chamador”.
Lembre-se que um bloco pode retornar apenas um valor Então, como fazer isso?
Ao final da execução qual o valor de A??
Informando argumentos por referência
Imagine que um determinado “bloco” (função / procedimento) precise alterar o valor de n variáveis do bloco “chamador”.
Lembre-se que um bloco pode retornar apenas um valor Em termos de resultado, o código deste slide e do anterior são iguais??
Ao final da execução qual o valor de A??
Informando argumentos por referência
Imagine que um determinado “bloco” (função / procedimento) precise alterar o valor de n variáveis do bloco “chamador”.
Lembre-se que um bloco pode retornar apenas um valor e não mais Solução: utilizar múltiplos argumentos por referência (“ & “ e “ * “)
Ao final da execução, qual o valor das variáveis A, B e C?
Fim da apresentação
Obrigada pela atenção