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
Download

baixar slides