Escolar Documentos
Profissional Documentos
Cultura Documentos
BÁSICO
ARA0363 – 1003
Prof: Maximiano Correia Martins, D.Sc
Aula 2
Plano de Aula: 2ª Aula de Programação de software básico
• Entrada e saída
• Estruturas condicionais
• Estruturas de repetição ou iteração
• Introdução às estruturas de dados
Entrada e Saída
Para um programa de
computador é fundamental a interação
com dispositivos de entrada e de saída,
sendo o teclado como dispositivo de
entrada e o monitor como dispositivo
de saída a configuração mais comum.
Função printf
Uma função é um conjunto de comandos agrupados em um bloco, que recebe
um nome e através deste pode ser chamado, permitindo o reaproveitamento de
código já construído.
A função printf() é parte de um conjunto de funções pré-definidas armazenadas
em uma biblioteca padrão de rotinas da linguagem C.
Ela permite apresentar na tela os valores de qualquer tipo de dado. Para tanto,
printf() 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.
A função permite realizar a impressão de textos no monitor, ou seja, é
responsável pela saída de informações, utilizando a sintaxe:
printf("formato", argumentos);
Função printf()
printf("formato", argumentos);
O primeiro argumento da função é obrigatório, ou seja, no mínimo
deve-se informar um texto para ser impresso.
Os próximos argumentos são opcionais, pois nem sempre é necessário
apresentar uma informação em conjunto do texto.
O uso da função com mais de um argumento requer também o uso de
formatadores de tipo, conforme a tabela a seguir.
TABELA : Formatadores de tipo
Formatadores de tipo
• %c
imprime o conteúdo da variável com representação ASCII;
• %d
imprime o conteúdo da variável com representação decimal com sinal;
• %u
imprime o conteúdo da variável com representação decimal sem sinal;
• %o
imprime o conteúdo da variável com representação octal sem sinal;
• %x
imprime o conteúdo da variável com representação hexadecimal sem sinal.
Formatadores de tipo
Para converter variáveis em ponto flutuante, as seqüências são:
• %f
imprime o conteúdo da variável com representação com ponto decimal;
• %e
imprime o conteúdo da variável com representação em notação científica
(exponencial);
• %g
formato geral, escolhe a representação mais curta entre %f e %e.
Exemplo 1:
#include<stdio.h>
int main (void)
{
float a=15.333;
printf(“Valor de a = %e", a);
return 0;
}
R: 9,7
Função scanf
Similar à função printf(), a função scanf() também suporta uma
quantidade "n" de argumentos e permite que os dados digitados pelo
usuário sejam armazenados nas variáveis do programa.
Exemplo:
int mat;
scanf("%d", &mat);
Função scanf
int mat;
scanf("%d", &mat );
printf(“mat= %d” , mat );
Dados da passagem:
int numero;
char origem;
char destino;
char data;
char horário;
int poltrona;
int plataforma;
Solução Exercício 1
#include<stdio.h>
int main (void)
{
float nota1,nota2,media;
printf(" digite a nota1 \n" );
scanf("%f",¬a1);
printf(" digite a nota2 \n" );
scanf("%f",¬a2);
media=(nota1+nota2)/2;
printf("Media: %f", media );
}
#include <stdio.h>
#include <stdlib.h>
Exemplos:
• If-else
• Switch
if-else
A cláusula if-else permite estabelecer um controle de fluxo no programa de forma que o
mesmo, possa escolher quando executar um determinado bloco de instruções ou não, ou
ainda, optar por executar um bloco de instruções em vez de outro.
Exemplo de uso:
Programa em C que receba um número inteiro e verifique se este número é maior que 10.
Em caso afirmativo o programa deverá imprimir a mensagem: "Numero maior que 10".
if-else
#include <stdio.h>
#include <stdlib.h>
int main() {
int num;
printf("Informe o numero: ");
scanf("%d", &num);
O switch é vantajoso quando é necessário fazer muitas comparações, pois irá oferecer maior
agilidade na implementação.
A cláusula break é responsável pela parada na execução das instruções, pois caso não seja
colocada, as validações presentes no switch continuarão a ser executadas, mesmo que um
case já tenha resultado em verdadeiro.
switch (expressao) { switch ( valor )
case constante1: {
case 1 :
instrucoes1;
printf ("Domingo\n");
break; break;
case constante2:
instrucoes2; case 2 :
printf ("Segunda\n");
break;
break;
... ...
default: default :
printf ("Valor invalido!\n");
instrucoes;
}
}
Estruturas de repetição ou iteração
Estruturas de repetição permitem que um conjunto de instruções seja repetido até que se faça a
condição desejada.
Exemplos:
• Cláusula for
• Cláusula while
Cláusula for
A cláusula for é muito útil quando se deseja repetir uma ou várias
instruções por um número n de vezes.
Embora, o for possibilite variações, o formato de uso mais comum é
utilizar uma variável que é incrementada e verificada a cada iteração,
assim quando a variável atinge um determinado valor o laço se encerra.
Sintaxe:
for (inicialização; condição de laco ou parada; incremento) {
instrucao01;
instrucao02;
...
instrucaoN;
}
Cláusula while
Diferente do for, o while geralmente é empregado quando não se pode
determinar com certeza quantas vezes um bloco de comandos será
executado.
A condição do while é definida de forma muito similar à definição da
condição no if.
A diferença é que no if o objetivo é desviar o caminho de execução
para um fluxo de instruções ou outro, no while o objetivo será manter a
execução de um bloco de instruções em execução, assim como no for.
Sintaxe:
EXEMPLOS:
Vetores ou arrays
Matrizes
Ponteiros
Vetores ou arrays
Vetor é um tipo de estrutura de dados que pode armazenar uma coleção sequencial e de tamanho fixo
de elementos do mesmo tipo. Um vetor é usado para armazenar uma coleção de dados, mas
geralmente é mais útil pensar em um vetor como uma coleção de variáveis do mesmo tipo.
Exemplo de declaração: int numero[100];
Em vez de declarar variáveis individuais, como numero0, numero1, ... e numero99, você declara uma
variável tipo vetor e usa numero[0], numero[1] e ..., numero[99] para representar variáveis individuais.
Um elemento específico em um vetor é acessado por um índice.
Todas os vetores consistem em locais de memória contínuos. O endereço mais baixo corresponde ao
primeiro elemento e o endereço mais alto ao último elemento.
Exercício de exemplo:
• Construa um programa em C que armazena 15 números inteiros
fornecidos pelo usuário em um vetor NUM e imprime uma lista dos
números lidos.
#include <stdio.h>
#include <stdlib.h>
int main() {
int i, NUM[15];
//lendo os valores
for (i=0; i<15; i++) {
printf("Informe um numero: \n");
scanf("%d", &NUM[i]);
}
//imprimindo os valores
for (i=0; i<15; i++) {
printf("Numero: %d \n", NUM[i]);
}
}
Matrizes
Uma matriz, ou vetor bidimensional é, em essência, uma lista de
vetores unidimensionais. Para declarar uma matriz de tamanho x linhas
e y colunas pode-se escrever algo da seguinte maneira.
malloc()
A função malloc aloca um espaço de memória e retorna um ponteiro do tipo void para o início do
espaço de memória alocado.
Sintaxe de malloc()
ptr = (tipo *) malloc (tamanho do byte)
Exemplo:
Considerando que o tamanho de int é de 4 bytes, essa instrução aloca 400 bytes de memória. E, o
ponteiro ptr contém o endereço do primeiro byte na memória alocada.
Sizeof
Sintaxe de free()
free(ptr);