Você está na página 1de 53

UNIVERSIDADE FEDERAL DO PIAUÍ – UFPI

Campus Picos

ALGORITMOS E PROGRAMAÇÃO II

Professor Especialista:
Leonardo Pereira de Sousa
leonardosousa@ufpi.edu.br
REVISÃO
Linguagem C
Conteúdo
• Estrutura básica;
• Estruturas de Seleção;
• Estruturas de Repetição;
• Vetor;
• Matriz;
• Registro.
Estrutura Básica
Tipos Básicos
• char: o valor armazenado é um caractere. Caracteres
geralmente são armazenados em códigos (usualmente o
código ASCII).
• int: número inteiro.
• float: número em ponto flutuante de precisão simples. São
conhecidos normalmente como números reais.
• double: Número em ponto flutuante de precisão dupla.
• void: este tipo serve para indicar que um resultado não
tem um tipo definido.
Variáveis
• Regras básicas para nomear variáveis:
– todo nome só pode conter letras e/ou dígitos;
– apenas o caractere símbolo "_" pode ser usado (acentuações são
consideradas símbolos);
– todo primeiro caractere deve ser sempre uma letra;
– letras maiúsculas e minúsculas são consideradas caracteres diferentes;
• Declaração de variáveis:
– int i, idade, numero;
– float salario, altura;
– unsigned char sexo, letra;
• Atribuição:
– idade = 31;
– sexo = ‘m’;
Constantes
• Constante é tudo aquilo que é fixo ou estável.
• Há duas maneiras de declarar constantes em C:
– a) usando a diretiva #define do pré-processador:
• #define < nome da constante > < valor >
• #define TAMANHO 400

– a) utilizando a palavra-chave "const":


• const < tipo > < nome > = < valor >:
• const int TAMANHO = 400
Operadores Aritméticos Básicos

Operador Símbolo Exemplo


Adição + a+b
Subtração - a-b
Multiplicação * a*b
Divisão / a/b
Resto de Divisão Inteira % a%b
Operadores Relacionais e Lógicos
Operador Símbolo Exemplo
Igual == a == b
Diferente != a != b
Maior > a>b
Maior ou igual >= a >= b
Menor < a<b
Menor ou igual <= a <= b
Conjunção && a && b
Disjunção || a || b
Negação ! !c
Comando de Saída printf
• printf (<info. de controle>, <lista de variáveis>);
• Informações de controle:
– É uma descrição do que vai aparecer na tela. É a definição do tipo
de dado do valor a ser exibido (geralmente de uma variável). Isto é
feito usando-se os códigos de controle, que usam a notação %.

Código Significado
%d Inteiro
%f Float
%c Caractere
%s String
%% Coloca na tela um %
Comando de Entrada scanf
• scanf (<info. de controle>, &<lista de variáveis>);
• Exemplos:
– scanf (“%f”, &salario);
– scanf (“%i”, &idade);
– scanf (“%c”, &letra);
– scanf (“%s”, &nome);
– scanf (“%s %i %f”, &nome, &idade, &salario);
• O caractere & indica que o valor será armazenado no
endereço de memória da variável.
Bibliotecas
• As bibliotecas agrupam um conjunto de funções que
facilitam a nossa vida na hora de programar, as funções
printf e scanf não são propriamente do C, elas fazem parte
de uma biblioteca que está inclusa no C, para declarar uma
biblioteca utilizamos a palavra chave #include <nome da
biblioteca>.
#include <stdio.h>

int main () {
printf (“Alô mundo!\n”);
return 0;
}
Estruturas de Seleção
Estrutura de Seleção

se (condição for Verdade) if (condição != 0)


então {
//comando1; //comando1;
/*ou bloco de comandos;*/ /*ou bloco de comandos;*/
fim_se; }
Estrutura de Seleção
• Exemplo
#include <stdio.h>
#include <stdlib.h>

int main()
{
int a; //Declaração de variável

printf(“Digite um número:\n”);
scanf(“%d”,&a);
if (a > 10)
{
printf(“O numero é maior que 10\n”);
}
printf(“Fim\n”);
}
Estrutura de Seleção
• Estrutura de seleção composta

se (condição for Verdade) if (condição != 0)


então {
comando1; comando1;
{ou bloco de comandos}; {ou bloco de comandos};
senão }
comando1; else
{ou bloco de comandos}; {
fim_se; comando1;
{ou bloco de comandos};
}
Estrutura de Seleção
• Exemplo
#include <stdio.h>
#include <stdlib.h>

int main(){
int a; //Declaração de variável

printf(“Digite um número:\n”);
scanf(“%d”,&a);
if (a > 10)
{
printf(“O numero é maior que 10\n”);
}
else
{
printf(“O número é menor ou igual a 10\n”);
}
printf(“Fim\n”);
}
Estrutura de Seleção
• Estrutura de seleção encadeada

se (condição1 for Verdade) então if (condição1 != 0)


se (condição2 for Verdade) então {
se (condição3 for Verdade) if (condição2 != 0)
então {
//comando1; if (condição3 != 0)
/*ou bloco de comandos*/ {
fim_se; //comando1
fim_se; /*ou bloco de comandos*/
fim_se; }
}
}
• Exemplo
#include <stdio.h>
#include <stdlib.h>

int main(){
int a; //Declaração de variável

printf(“Digite um número:\n”);
scanf(“%d”,&a);
if (a > 10)
{
if (a < 20)
{
if ((a % 2) == 0)
{
printf(“O numero é maior que 10, menor que 20 e par\n”);
}
}
}
printf(“Fim\n”);
}
Estrutura de Seleção
• Estrutura de seleção encadeada composta
se (condição1 for Verdade) então if (condição1 != 0)
se (condição2 for Verdade) então {
se (condição3 for Verdade) if (condição2 != 0)
{
então
if (condição3 != 0)
/*bloco de comandos*/
{
senão /*bloco de comandos*/
/*bloco de comandos*/ }
fim_se; //condição 3 else
fim_se; //condição 2 {
senão /*bloco de comandos*/
/*bloco de comandos*/ }
fim_se; //condição 1 }
}
else
{
/*bloco de comandos*/
}
• Exemplo
#include <stdio.h>
#include <stdlib.h>

int main(){
int a; //Declaração de variável

printf(“Digite um número:\n”);
scanf(“%d”,&a);
if (a > 10) {
if (a < 20) {
if ((a % 2) == 0) {
printf(“O numero é maior que 10, menor que 20 e par\n”);
}
else{
printf(“O numero é maior que 10, menor que 20 mas não é par\n”);
}
}
else{
printf(“O numero é maior que 10, mas maior que 20\n”);
}
}
printf(“Fim\n”);
}
Comando de Seleção switch
Comando de Seleção switch
Comando de Seleção switch
Comando de Seleção switch
Estruturas de Repetição
Comando While
• O comando while é um comando de repetição onde
a expressão que representa uma condição de
controle é avaliada antes da execução do bloco de
comandos. Sua estrutura básica envolve 4 etapas:
– Iniciação da expressão de controle.
– Avaliação da expressão de controle.
– Execução do bloco de comandos.
– Atualização das variáveis da expressão de controle.
• O bloco de comandos é executado repetidamente
enquanto a condição for verdadeira (não zero).
Comando While
• A estrutura do comando
repetitivo while é
representada através de
um fluxograma da seguinte
forma:
Comando While
#include <stdio.h>
#include <conio.h>
int main( )
{
int contador = 1;

while (contador <= 10)


{
printf("%d ", contador);

contador++;
}

getch();

}
Comando do-while
• O comando do-while funciona do mesmo modo
que o comando while, com a diferença de que a
condição de controle é avaliada após a execução
do bloco de comandos.
• Sua estrutura básica envolve 4 etapas:
– Iniciação da expressão de controle.
– Execução do bloco de comandos.
– Atualização das variáveis da expressão de controle.
– avaliação da expressão de controle.
Comando do-while
• A estrutura do comando
repetitivo do-while é
representada através de
um fluxograma da seguinte
forma:
Comando do-while
#include <stdio.h>
#include <stdlib.h>
A utilização dos caracteres
int main (){ de chaves { (início) e }
int i = 1; (fim) são obrigatórios no
do { comando do while.
printf ("Numero = %d\n", i);
i = i + 1;
} while(i <=4);

system ("PAUSE");
return (0);
}
Comando de Repetição for
• Repetição com variável de controle incremental
para X inicio VarInicio fim VarFim passo VarPasso faça
/*bloco de comandos*/
fim_para;

for(X = VarInicio ; X <= VarFim ; X = X+VarPasso)


{
/*bloco de comandos*/
}

• A variável de controle é automaticamente


incrementada no fim do laço.
Comando de Repetição for
#include <stdio.h>
#include <stdlib.h>
Se o for tiver mais de um
int main (){ comando é necessário a
int i = 1; utilização dos caracteres de
for (i = 1; i <= 4; i++) chaves para marcar o início
printf ("Numero = %d\n", i); e fim do comando: { (início)
e } (fim).
system ("PAUSE");
return (0);
}
Vetor
VETOR
• O vetor é uma estrutura de dados linear que
necessita de somente um índice para que
seus elementos sejam endereçados.
• É utilizado para armazenar uma lista de
valores do mesmo tipo, ou seja, o tipo vetor
permite armazenar mais de um valor em
uma mesma variável.
VETOR
• Um dado vetor é definido como tendo um número
fixo de células idênticas (seu conteúdo é dividido
em posições).
• Cada célula armazena um e somente um dos
valores de dados do vetor.
• Cada uma das células de um vetor possui seu
próprio endereço, ou índice, através do qual pode
ser referenciada.
• Nessa estrutura todos os elementos são do mesmo
tipo, e cada um pode receber um valor diferente
[3, 21,4].
VETOR
• A definição de um vetor em C se dá pela
sintaxe:

• Tipo_do_dado nome_do_vetor[tamanho_do_vetor]
Exemplo de Vetor 01
• Dada uma seqüência de n números, imprimi-la na
ordem inversa à da leitura.
Matriz
MATRIZ
• Uma matriz é um arranjo bidimensional ou
multidimensional de alocação estática e
seqüencial.
• A matriz é uma estrutura de dados que
necessita de um índice para referenciar a
linha e outro para referenciar a coluna para
que seus elementos sejam endereçados.
MATRIZ
• Os elementos ocupam posições contíguas na
memória. A alocação dos elementos da
matriz na memória pode ser feita colocando
os elementos linha-por-linha ou coluna-por-
coluna.
MATRIZ
• Uma matriz consiste de dois ou mais vetores
definidos por um conjunto de elementos.
Cada dimensão de uma matriz é um vetor.
• O primeiro conjunto (dimensão) é
considerado o primeiro vetor, o segundo
conjunto o segundo vetor e assim
sucessivamente
MATRIZ
• A deinição de uma matriz em C se dá pela
sintaxe:
• tipo_do_dado nome_da_matriz
[ quantidade_linhas ] [ quantidade_colunas ]
Exemplo de Programa
• Programa para calcular o determinante de
uma matriz 2 x 2:
#include <stdio.h>
#define DIMENSAO 2
int main ( )
{
int iLinha, iColuna;
int iDeterminante;
int aMatriz [DIMENSAO][DIMENSAO];
for (iLinha=0; iLinha < DIMENSAO; iLinha++)
{
for (iColuna=0; iColuna < DIMENSAO; iColuna++)
{
printf ("Entre item %d %d:", iLinha + 1, iColuna + 1);
scanf ("%d", &aMatriz [iLinha][iColuna]);
}
}
iDeterminante =
aMatriz[0][0] * aMatriz [1][1]
-
aMatriz[0][1] * aMatriz [1][0];

printf ("Determinante : %d\n", iDeterminante);


getch();
}
Registro
Conceito
• Um registro (record) é uma coleção de várias variáveis,
possivelmente de tipos diferentes (estrutura heterogênea
de dados), e logicamente relacionadas.
• Os elementos de um registro são chamados de campos.
• Exemplos:
– Funcionário de uma empresa
• Nome, cargo, salário
– Aluno universitário
• Matrícula, nome, curso
– Endereço
• CEP, logradouro, numero, bairro, cidade
Declaração de Tipos de Registros
• Na linguagem C, registros são conhecidos como structs
(abreviatura de structures). A declaração de um registro é
a declaração de um tipo personalizado que será utilizado
por uma variável. Nome do tipo
do registro.
Estrutura Básica Exemplo
struct nome_do_tipo{ struct funcionario{
<tipo> <variável>; char nome[80];
<tipo> <variável>; char cargo[10];
... float salario;
}; };

Tipo primitivo (int, float, ...) Nome da variável do


do campo do registro. campo do registro.
Exemplo
#include <stdio.h>
#include <string.h>
struct funcionario{
char nome[80];
char cargo[10];
float salario;
};
int main(){
struct funcionario func;
strcpy(func.nome, “Leonardo Sousa");
strcpy(func.cargo, "professor");
func.salario = 2000.00;
printf("Nome=%s, cargo=%s, salario=%.2f",
func.nome, func.cargo, func.salario);
return 0;
}
FIM

Você também pode gostar