Programação Computacional Aula 9: Meu primeiro programa em C Profa. Madeleine Medrano [email protected] 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: 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. Abrir um arquivo do disco 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: Veja alguns exemplos: <complex.h> Manipular números complexos <errno.h> <math.h> <stdio.h> <stdlib.h> Teste de códigos de erro Funções matemáticas Manipulação de entrada/saída Alocação de memória Funções de biblioteca Sempre retornam um valor (ex. inteiro) Procedimento de biblioteca Não retornam valores 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 nome (detalhes nos próximos slides) e não o 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