LA – Ling C – Aula 03B – Estrutura dos Programas

 

Estrutura dos Programas

Todo programa em C é formado de uma ou mais funções.

Funções são trechos de código que possuem um nome, um tipo de retorno, podem receber alguma informação e são delimitadas por chaves. Delimitações por chaves são chamados de blocos.

Todo programa C, deve ter uma única função chamada main. Esta é a primeira função a ser executada.

Toda instrução C é terminada por um ponto-e-vírgula.

Estrutura Básica

tipoRetorno nomeFuncao (declaração dos parâmetros)
{
	declaração de variáveis;
	instruções;
	return variavelOuValorRetorno;
}

Menor programa em C

int main ( )
{
	return 0;
}

Função printf

Saída padrão em C, usada para imprimir informações em tela.

Está presente na biblioteca stdio.h.

Recebe uma expressão contendo um texto e caracteres de controle e formatação (iniciados por %). A partir do segundo parâmetro são os valores (variáveis ou constantes) que serão exibidos nos locais dos % da expressão.

Caracteres que não podem ser obtidos diretamente do teclado são codificados usando a barra invertida combinada com outros caracteres.

Sintaxe

printf(“expressão”, lista de valores);

Exemplo 1

printf(“Ola mundo!”);
printf(“Velocidade maxima: %d”, 120);

olamundovideo

Exemplo 2

substituicaoprintf

printf2

Exemplo 3

printf3

printf31

Exemplo 4

Pode-se determinar o tamanho da caixa onde um valor será exibido, desta forma é possível organizar melhor as saídas em tela.

printf4

Códigos Especiais

Percebemos que na impressão de valores, há substituição de variáveis. Há casos também em que há impressão de valores não visíveis, como por exemplo, o , etc. Em seguida, segue alguns exemplos de códigos especiais:

codigosespeciais

Operador de Endereços (&)

A memória do computador é divida em conjuntos de bytes. Cada conjunto tem um endereço numérico associado, mais ou menos como os CEPs de nossas residências.
O operador & retorna este endereço da variável na memória.

Exemplo

...
int a;
a = 10;
printf("%d", a); /* mostra o valor 10 */
printf("%p", &a); /* mostra o endereço da variável na memória */
...

A função scanf, como mostrado, utiliza este endereço para poder guardar a informação do teclado no local correto da memória.

Função scanf

Entrada padrão em C, usada para obter informações do teclado.

Está presente na biblioteca stdio.h.

Recebe uma expressão contendo caracteres de controle (iniciados por %). A partir do segundo parâmetro recebe endereços de variáveis onde os dados obtidos serão armazenados.

Diferentemente do printf, nenhum caractere da expressão será exibido em tela, eles servem apenas para orientar a função em como ler as informações do teclado.

Sintaxe

scanf(“expressão”, lista de valores);

Exemplos

scanf("%f", &salario);

Aguarda que o usuário digite um valor numérico de ponto flutuante e guarda o valor no endereço da variável salario.

scanf("%d", &idade);

Aguarda que o usuário digite um valor numérico inteiro e guarda o valor no endereço da variável idade.

scanf("%d*%d*%d", &dia, &mes, &ano);

Lê 3 valores inteiros e guarda cada um em sua respectiva variável. O asterisco serve para o scanf ignorar as barras de data.

Exemplo 1 – Escreva um programa em C que calcule a idade de uma pessoa (ignorando os meses em que a pessoa nasceu)

exemplo_es_01

link no GitHub para exemplo de Entrada e Saida 01

Exemplo 2 – Escreva um programa em C que calcule sua média semestral.

exemplo_es_02

link no GitHub para exemplo de Entrada e Saida 02

Exercícios Extra-Classe

Treinamento em Código 1

c1

Observação: Na instrução: scanf(“%d %*c %d %*c %d”,&dia,&mes,&ano);

%d refere-se ao dia digitado

%*c refere-se ao caracter barra para separação da data (25/05). Esse caracter será ignorado posteriormente pelo compilador (comando *) e o caracter “c” indica que vai ser lido um caráter;

link no Github

Treinamento em Código 2

c2

Treinamento em Código 3

c3

Treinamento em Código 4

c4

Traduza os seguintes algoritmos para a linguagem C:

1 – Faça a tradução do algoritmo de conversão de C para F abaixo para a linguagem C.

/*
Início
    //declaração de variáveis 
    real C, F;
    // Entrada de dados 
    Escreva ("Entre com uma temperatura qualquer em graus Celsius:");
    Leia(C);
            
    // Processamento 
    F = ((9*C)+160)/5;
   	
    // Saída de dados 
    Escreva ("O resultado da conversão de Celsius para Fahrenheit é:", F);
Fim.
*/

2 – Faça a tradução do algoritmo do calculo de volume para a lingugagem C.

/*
Início
    // declaração de variáveis 
    real RAIO, ALTURA, VOLUME;
    // Entrada de dados 
    Escreva ("Entre com o Raio da lata:");
    Leia(RAIO);
    Escreva ("Entre com a Altura da lata:");
    Leia(ALTURA);
    // Processamento 
    VOLUME = (3.14159*(RAIO**2))*ALTURA;
    // Saída de dados 
    Escreva ("O volume da lata é:", VOLUME);
Fim.
*/

3 – Faça a tradução do algoritmo abaixo do calculo do quadrado para a linguagem C.

/*
Português Estruturado:
Início
    // declaração de variáveis 
    inteiro N;
    // Entrada de dados 
    Escreva ("Entre com um número inteiro qualquer:");
    Leia(N);
    // Processamento 
    N = N*N;
    // Saída de dados 
    Escreva ("O quadrado do número fornecido é:", N);
Fim.
*/

4 – Faça a tradução do algoritmo abaixo de troca de valores para a linguagem C.

/*
Português Estruturado:
Início
//declaração de variáveis 
    inteiro A, B, X;
    // Entrada de dados 
    Escreva ("Entre com um número inteiro qualquer para A:");
    Leia(A);
    Escreva ("Entre com outro número inteiro qualquer para B:");
    Leia(B);
    //Processamento 
    X = A;
    A = B;
    B = X;
    //Saída de dados 
    Escreva ("O novo valor de A é:", A);
    Escreva ("O novo valor de B é:", B);
Fim.
*/

5 – Faça a tradução do algoritmo abaixo de operções para a linguagem C.

/*
Português Estruturado:
Início
    // declaração de variáveis 
    real NUM1, NUM2, SOMA, SUBTR, MULTIPLICA, DIVISAO;
    
    // Entrada de dados 
    Escreva ("Entre com um número qualquer :");
    Leia (NUM1);
    Escreva ("Entre com outro número qualquer :");
    Leia (NUM2);
    
    // Processamento 
    ADICAO = NUM1 + NUM2;
    SUBTR = NUM1 - NUM2;
    MULTIPLICA = NUM1 * NUM2;
    DIVISAO = NUM1 / NUM2;
    
    // Saída de dados 
    Escreva ("OPERAÇÕES COM OS NÚMEROS FORNECIDOS ");
    Escreva ("ADICAO: ", NUM1, "+", NUM2, " = ",ADICAO);
    Escreva ("SUBTRACAO: ", NUM1, "-", NUM2, " = ", SUBTR);
    Escreva ("MULTIPLICACAO: ", NUM1, "*", NUM2, " = ", MULTIPLICA);
    Escreva ("DIVISAO: ", NUM1, "/", NUM2, " = ", DIVISAO);
Fim.
*/

6 – Faça a tradução do algoritmo abaixo de numero antecessor e sucessor para a linguagem C.

/*
Português Estruturado:
Início
    // declaração de variáveis 
    inteiro N, SUCESSOR, ANTECESSOR;
    // Entrada de dados 
    Escreva ("Entre com um número inteiro qualquer:");
    Leia(N);
    // Processamento 
    ANTECESSOR = N - 1;
    SUCESSOR = N + 1;
    // Saída de dados 
    Escreva ("O número", N," tem como antecessor ", ANTECESSOR," 
              e sucessor", SUCESSOR);
Fim.
*/

 

Observação: Conteúdo do material desenvolvido pelo Professor César Tofanini, adaptado pelo Professor Rodrigo Saito

 

Vídeo 01

Video 02

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s