113
Linguagem C Revisão Luis Antonio Tavares luistavares.com

Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Embed Size (px)

Citation preview

Page 1: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Linguagem CRevisão

Luis Antonio Tavares

luistavares.com

Page 2: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Como escrevemos programas?

Codificação Compilação Executável

#include <stdio.h>#include <conio.h>int main (void){ printf("Ola Mundo");

getch( ); return 0;

}

Page 3: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Estrutura Básica de Um Programa

#include <stdio.h> /* Inclusão de Biblioteca */#include <conio.h> /* Inclusão de Biblioteca */

int main (void) { /* Chave delimita início do código */

getch( ); /* Função que mantém tela aberta*/return 0; /* Retorno informando sucesso */

} /* Chave delimita o fim do código */

Page 4: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Declarando Variáveis Inteiras

#include <stdio.h>#include <conio.h>

int main(void) {

int a; /* Declarando uma variável inteira */

return 0;}

Page 5: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Variáveis Inteiras Em Um Programa#include <stdio.h>

#include <conio.h>

int main(void) {int a, q; /* Declarando variável inteira */printf("Informe um valor inteiro: ");scanf("%d", &a); /* Função Leia */q = a * a;printf(“Esse valor ao quadrado eh: %d", q);return 0;

}

Page 6: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Declarando Variáveis Reais#include <stdio.h>#include <conio.h>

int main(void) {

float a; /* Declarando uma variável real */

return 0;}

Page 7: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Variáveis Reais Em Um Programa#include <stdio.h>#include <conio.h>

int main(void) {float a, q; /* Declarando variável real */printf("Informe um valor real: ");scanf("%f", &a);q = a * a;printf(" Esse valor ao quadrado eh: %f", q);return 0;

}

Page 8: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

int main (void){float a, b;printf ("Informe o primeiro numero: ");scanf ("%f", &a);printf ("Informe o segundo numero: ");scanf ("%f", &b);if (a > b){printf ("O maior numero eh: %f", a);}else {printf ("O maior numero eh: %f", b);}getch( );return 0;

}luistavares.com

Condições

Page 9: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Exemplo Operador E:if ( NUM > 20 && NUM < 30 ) {

printf (“O NUMERO EH MAIOR QUE 20 E MENOR QUE 30!”);}

Exemplo Operador OU:if ( NUM > 20 || NUM < 30 ) {

printf (“O NUMERO EH MAIOR QUE 20 OU MENOR QUE 30!”);

}

Operadores Lógicos

luistavares.com

Page 10: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

escreve_display(“.:: MENU ::.”);escreve_display(“1 - Configurações”);escreve_display(“2 – Iniciar Sistema”);escreve_display(“3 – Sair”);opcao = le_opcao ( );

if ( opcao == 1 ) {escreve_display(“Entrando nas configurações.”);configura ( );}else if ( opcao == 2 ) { escreve_display(“Inicializando sistema.”);inicializa ( );} else {escreve_display(“Saindo do menu.”);}

Exemplo de Aplicação

luistavares.com

Page 11: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Sintaxe Loop WHILE

while (condição) {bloco de código;

}

Page 12: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Loop WHILE#include <conio.h>#include <stdio.h>int main (void){

int cont = 1;while (cont < 5){

printf("Numero: %d\n", cont);cont = cont + 1;

}getch( );return 0;

}

Page 13: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include <conio.h>#include <stdio.h>int main (void) {

float media, n1, n2;int num = 1;while (num == 1) {

printf ("Informe a primeira nota: ");scanf ("%f", &n1);printf ("Informe a segunda nota: ");scanf ("%f", &n2);media = ( n1 + n2 ) / 2;printf ("Sua media eh: %f\n", media);printf ("Digite 1 se deseja continuar no programa: ");scanf ("%d", &num);

}return 0;

}luistavares.com

Page 14: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Sintaxe Loop FORfor (inicialização; condição; incremento) {

bloco de código;}

Exemplo:for (cont=1; cont<=5; cont++) {

bloco de código;}

Page 15: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include <conio.h>#include <stdio.h>int main (void){

int cont;for (cont=1; cont<=5; cont++){

printf (“Numero: %d”, cont);}getch( );return 0;

}

luistavares.com

Loop FOR

Page 16: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Sintaxe Loop DO WHILE

do {bloco de código;

} while (condição);

Page 17: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Loop DO WHILE#include <conio.h>#include <stdio.h>int main (void){

int cont = 0;do{

printf("Numero: %d\n", cont);cont = cont + 1;

} while (cont < 5);getch( );return 0;

}

Page 18: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Comando break Também é possível deixar o loop rodando em

uma condição que será sempre verdadeira e usar uma condição if com o comando break para encerrar o loop.

Veja o exemplo:

while (1) {printf(“Mensagem Qualquer");cont = cont + 1;if (cont == 5) { break;}

}

Page 19: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include<conio.h>#include<stdio.h>void oi( ) {

printf ("Oi! \n");}int main( void ) {

oi( ); /* Chamada de Função Sem Retorno */

getch( );return 0;

}luistavares.com

Declarando e Chamando Funções

Page 20: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include<conio.h>#include<stdio.h>int calcula_quadrado (int a) {

int result;result = a * a;return result;

}int main (void) {

int num, r;printf ("Informe um valor: ");scanf ("%d", &num);r = calcula_quadrado (num);printf ("Quadrado: %d", r);getch ( );return 0;

}

Função de Retorno Inteiro

Page 21: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

A palavra float antes do nome da função indica que a função irá retornar um valor real;

A função seguinte está dividindo um parâmetro por outro e retornando o resultado.

float divide (float a, float b) {float result;result = a / b;return result;}

Retorno de tipo real em C

Page 22: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

int main(void) {float n1, n2, r;printf ("Informe o primeiro numero: ");scanf ("%f", &n1);printf ("Informe o segundo numero: ");scanf ("%f", &n2);r = divide (n1, n2);printf (“Divisao: %f", r);getch ( );return 0;

}

Chamada para a função

Chamada para a função

Page 23: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

luistavares.com

Exercícios

Page 24: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Linguagem CProtótipos de Funções e Arquivos Header

Luis Antonio Tavares

luistavares.com

Page 25: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Nos programas que desenvolvemos até agora tivemos de definir nossas funções antes do main (parte principal).

Agora vamos ver como criar funções em qualquer parte de um arquivo .c ou até mesmo usar outro arquivo para implementar uma função.

Criar Funções

Page 26: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Para definir uma função em qualquer parte de um arquivo fonte em linguagem C, precisamos primeiro criar o protótipo da função.

O protótipo é a assinatura da função, trata-se da primeira linha da função porém encerrando com um ponto e vírgula ( ; ).

Protótipo de Função

Page 27: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Pelo protótipo informamos ao compilador que em algum ponto dos arquivos ele encontrará uma função com as características informadas.

Protótipo de Função

Page 28: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

int potencia(int base, int exp);

Função:int potencia (int base, int exp) {int result, cont;result = 1;for (cont = 1; cont <= exp; cont++){result = result * base;}return result;}

Exemplo de Protótipo de Função

Page 29: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#includes ... /* Bibliotecas */int potencia(int base, int exp); /* Protótipo */

int main (void ) {... } /* Parte Principal */

int potencia (int base, int exp){ /* Função */int result, cont;result = 1;for (cont = 1; cont <= exp; cont++){result = result * base;}return result;}

Como Ficaria o Programa

Page 30: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Arquivo Separado para a Função Passos1. Criamos um arquivo de cabeçalho

contendo o protótipo da função;

2. Criamos um arquivo .c que irá conter o código da função;

3. Criamos um arquivo .c que irá conter a parte principal do programa.

Page 31: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

1.Arquivo de Cabeçalho ou Header Criamos um arquivo de cabeçalho (header

file) que irá conter apenas o protótipo da função:

int potencia(int base, int exp);

Nos arquivos header, são declaradas funções e constantes que podem ser compartilhadas por vários programas ou rotinas de linguagem C.

Page 32: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

2.Arquivo .c da Função Criamos um .c que contém o código da função:

int potencia (int base, int exp){ /* Função */int result, cont;result = 1;for (cont = 1; cont <= exp; cont++){result = result * base;}return result;}

Page 33: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

3.Arquivo .c da Parte Principal#include<conio.h>#include<stdio.h>#include “potencia.h” /* Header File da Função */

int main (void){int num, r;printf("Informe um numero: ");scanf("%d", &num);r = potencia(num, 3);printf("O resultado eh: %d", r);getch( );return 0;

}

Note a Inclusão do Arquivo de Cabeçalho

(.h) que contém o protótipo da função. Usa-se aspas por ser

um arquivo local.

Page 34: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

luistavares.com

Exercícios

Page 35: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Linguagem CVariáveis Globais e Constantes

Luis Antonio Tavares

luistavares.com

Page 36: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Nos programas que desenvolvemos até agora declaramos apenas variáveis locais, ou seja, as variáveis que utilizamos tinham seu escopo limitado à função main ou outra função.

Utilizamos parâmetros para transferir valores para funções.

Variáveis Locais x Globais

Page 37: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Agora veremos como definir uma variável para se tornar visível em todo o código (variável global), sem a necessidade de passar por parâmetro entre as funções.

Porém, o uso de variáveis globais não é recomendado.

Variáveis Locais x Globais

Page 38: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include<conio.h>#include<stdio.h>int main (void) {int a, b, r;

printf("Informe o primeiro valor: ");scanf("%d", &a);printf("Informe o segundo valor: ");scanf("%d", &b);r = soma(a, b);printf("A soma eh: %d \n", r);return 0;}

Variáveis Locais

Variáveis Locais

Page 39: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include<conio.h>#include<stdio.h>int exemplo = 15;void exibe();

int main (void) {printf("Valor da variavel: %d \n", exemplo);exibe( );getch( );return 0;

}

void exibe ( ) {printf("Valor da variavel: %d \n", exemplo);}

Variáveis Globais

Variável Global

Page 40: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Note que a variável global foi definida logo após a inclusão das bibliotecas.

No exemplo anterior a variável global será acessível tanto na função principal (main) como na função exibe( ).

Variáveis Globais

Page 41: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Uma das maneiras de definir uma constante em linguagem C é através do uso da diretiva de compilação #define

Exemplo:#define PI 3.14159

O compilador irá substituir todas as ocorrências da constante PI no código pelo valor 3.14159, no momento da compilação.

luistavares.com

Definição de Constantes

Page 42: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include<stdio.h>#include<conio.h>#define PI 3.14159

int main( ) {printf("O valor de PI eh: %f", PI);getch( );return 0;

}

luistavares.com

Definição de Constantes

Page 43: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Um outro local onde podemos declarar constantes são nos arquivos de cabeçalho (ou arquivos header).

Basta criar um arquivo de extensão .h, definir as constantes e protótipos dentro do arquivo e, depois, importar o arquivo no código usando o comando include.

Definição de Constantes

Page 44: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Exemplo de arquivo header:#ifndef POTENCIA_H_#define POTENCIA_H_

#define PI 3.14int potencia(int base, int exp);

#endif /* POTENCIA_H_ */

Comando de importação:#include “potencia.h”

Definição de Constantes

Page 45: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

luistavares.com

Exercícios

Page 46: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Linguagem CTipos de Variáveis

Luis Antonio Tavares

luistavares.com

Page 47: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Principais Tipos de Variáveis

Tipo Bytes Faixa que abrange

Formato p/ scanf e printf

char 1 -127 a 127 %c

int 2 -32.768 / 32.767 %i ou %d

long int 4 -2.147.483.648 a 2.147.483.647

%li

float 4 3,4E-38 / 3.4E+38 %f

double 8 1,7E-308 / 1,7E+308 %lf

Page 48: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Utilizando os Novos Tipos O tipo char permite armazenar letras; O tipo long é semelhante ao int, porém suporta

um valor maior, com mais dígitos que o tipo int; O tipo double é semelhante ao float, porém

também suporta mais dígitos que o float;

O processo para declarar e utilizar variáveis dos tipos char, long e double é o mesmo que já utilizamos para as variáveis de tipo int e float.

Page 49: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Declarando Variáveis Long Int

#include <stdio.h>#include <conio.h>

int main(void) {

long int a; /* Declarando variável long int */

return 0;}

Page 50: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Variáveis Long Int Em Um Programa

#include <stdio.h>#include <conio.h>

int main(void) {long int a, q; /* Declarando variável long int

*/printf("Informe um valor inteiro: ");scanf("%li", &a); /* Função Leia */q = a * a;printf(“Esse valor ao quadrado eh: %li", q);return 0;

}

Page 51: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Declarando Variáveis Double

#include <stdio.h>#include <conio.h>

int main(void) {

double a; /* Declarando variável double */

return 0;}

Page 52: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Variáveis Double Em Um Programa#include <stdio.h>#include <conio.h>

int main(void) {double a, q; /* Declarando variável real */printf("Informe um valor real: ");scanf("%lf", &a);q = a * a;printf(" Esse valor ao quadrado eh: %lf", q);return 0;

}

Page 53: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Declarando Variáveis Char#include <stdio.h>#include <conio.h>

int main(void) {

char a; /* Declarando variável char*/

return 0;} Tome cuidado, pois esta declaração funciona

apenas para um único caractere, não palavras.

Page 54: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Variáveis Char Em Um Programaint main(void) {

char v;printf("Informe apenas uma letra: ");scanf("%c", &v);if (v == 'a'){

printf("Voce digitou a letra A.");}else {

printf("Voce digitou letra diferente de A.");}getch();return 0;

}

Page 55: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Também podemos definir funções que recebam variáveis de tipo double, long int e char como parâmetro e funções que tenham retorno de tipo double, long int ou char.

Exemplo:double cubo (double num) {

double result;result = num * num * num;return result;

}

luistavares.com

Funções

Page 56: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

luistavares.com

Exercícios

Page 57: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Estrutura Switch CaseEstrutura Switch Case

Luis Antonio Tavares

luistavares.com

Page 58: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Muitas Condições Aninhadas

Em algumas situações pode ser necessário o uso de muitas condições aninhadas. Exemplo:

if (num == 1) {/* Bloco de Instruções */} else if (num == 2) {/* Bloco de Instruções */}else if (num == 3) { /* Bloco de Instruções */}else {/* Bloco de Instruções */}

Page 59: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Comando Switch Case O comando Switch Case serve para facilitar

este tipo de construção, simplificando a organização do código, já que muitas condições aninhadas podem ser um pouco confuso;

Porém o Switch Case só serve para comparar valores inteiros ou tipos derivados, por exemplo: char e long int.

Page 60: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

switch (n) {case 1:

printf("Valor Um");break;case 2:printf("Valor Dois");break;case 3:printf("Valor Tres");break;}

Comando Switch Case

Page 61: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Após o switch, definimos a variável que será manipulada (n);

Cada um dos blocos case trata-se de uma possibilidade de valor para esta variável;

Se a variável n for igual a 1, então o bloco de código definido no case 1 será executado;

Se a variável n for igual a 2, então o bloco de código definido no case 2 será executado;

Se a variável n for igual a 3, então o bloco de código definido no case 3 será executado;

Comando Switch Case

Page 62: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Também é possível adicionar um bloco default, que será executado caso a variável manipulada não corresponda a nenhum dos valores definidos pelos case;

default:printf("Bloco Padrão");break;

Comando Switch Case

Page 63: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Comando Switch Caseswitch (n) {case 1:

printf("Valor Um");break;case 2:printf("Valor Dois");break;default:printf(“Nenhum dos Valores");break;}

Page 64: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

A instrução break é responsável por encerrar a execução do bloco de código;

Quando não presente, a execução do programa inicia em um case e continua pelos próximos case, até encontrar um comando break.

Comando Switch Case

Page 65: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Comando Switch Caseswitch (n) {case 1:

printf("Valor Um");case 2:printf("Valor Dois");break;default:printf(“Nenhum dos Valores");break;}

Page 66: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

luistavares.com

Exercícios

Page 67: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Linguagem CVetores

Luis Antonio Tavares

luistavares.com

Page 68: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Vetores são coleção de objetos que têm mesma natureza, ou seja, todos seus elementos possuem um mesmo tipo básico;

São chamados também de array, em inglês;

Os elementos de um vetor são identificados pelo nome seguido de índice entre colchetes.

Com vetores, conseguimos armazenar vários valores usando um mesmo identificador (variável), porém cada valor fica em um índice diferente.

Vetores

luistavares.com

Page 69: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

int exemplo [5]; Tipo Nome Número Elementos Na declaração de um vetor tempos de definir o tipo do

vetor, o nome do vetor e a quantidade de elementos (entre colchetes);

Para atribuir e acessar os elementos do vetor, temos de especificar o índice do elemento, também através do uso de colchetes. Ex.:

exemplo[3] = 100;

Declaração de Vetor

luistavares.com

Page 70: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

No caso da declaração do vetor anterior, obtemos na memória o seguinte arranjo:

Observe que o vetor exemplo é dividido em 5 posições. Cada posição pode ser ocupada por um valor distinto;

Depois de inicializar a posição 3 com o valor 100, ainda tempos 4 posições livres no vetor.

índices [0] [1] [2] [3] [4]

100

Declaração de Vetor

exemplo

luistavares.com

Page 71: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Exemplo - vetor de notas de uma turma:

float notas[22];

Organização do vetor:

índices [0] [1] [2] ... [21]

7,8 10,0 5,6 ... 8,5

Declaração de Vetor

notas

luistavares.com

Page 72: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Veja exemplos de declarações e inicializações de vetores a seguir.

int dia[7] = { 12, 30, 14, 7, 13, 15, 6 };

float notas[5] = { 8.4, 6.9, 4.5, 4.6, 7.2 };

char vogal[5] = { 'a', 'e', 'i', 'o', 'u' };

luistavares.com

Declaração e Inicialização de Vetor

Page 73: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

int exemplo[5];exemplo[0] = 20;exemplo[1] = 22;exemplo[2] = 24;exemplo[3] = 26;exemplo[4] = 28;printf("Primeiro elemento do vetor: %d \n", exemplo[0]);printf("Segundo elemento do vetor: %d \n", exemplo[1]);printf("Terceiro elemento do vetor: %d \n", exemplo[2]);printf("Quarto elemento do vetor: %d \n", exemplo[3]);printf("Quinto elemento do vetor: %d \n", exemplo[4]);

Declaração e Inicialização

luistavares.com

Page 74: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

int cont;int exemplo[5];exemplo[0] = 20;exemplo[1] = 22;exemplo[2] = 24;exemplo[3] = 26;exemplo[4] = 28;

for (cont = 0; cont <=4; cont++) {printf(“Elemento do vetor: %d \n”,

exemplo[cont]);}

Varrendo o Vetor

luistavares.com

Page 75: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

int exemplo[5];printf("Informe o primeiro valor: ");scanf("%d", &exemplo[0]);printf("Informe o segundo valor: ");scanf("%d", &exemplo[1]);printf("Informe o terceiro valor: ");scanf("%d", &exemplo[2]);printf("Informe o quarto valor: ");scanf("%d", &exemplo[3]);printf("Informe o quinto valor: ");scanf("%d", &exemplo[4]);

Atribuindo Dados Lidos ao Vetor

Page 76: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Para evitar repetições podemos usar um laço para percorrer todos os índices do vetor, armazenando em cada posição um valor informado pelo usuário:

for (cont = 0; cont <=4; cont++) {printf("Informe um valor: ");scanf("%d", &exemplo[cont]);}

Atribuindo Dados Lidos ao Vetor

Page 77: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

int main( ) {int cont, exemplo[5];for (cont = 0; cont <=4; cont++) {

printf("Informe um valor: ");scanf("%d", &exemplo[cont]);

}printf("\n Estes sao os elementos do

vetor: \n");for (cont = 0; cont <=4; cont++) {

printf("Elemento: %d \n", exemplo[cont]);

}getch( );return 0;

}

Exemplo Completo

Page 78: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

luistavares.com

Exercícios

Page 79: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Linguagem CTrabalhando com Strings

Luis Antonio Tavares

luistavares.com

Page 80: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Strings Uma String é o termo utilizando em

programação para definir uma sequência de caracteres;

Usamos Strings para armazenar nomes, endereços, até mesmo números, desde que não sejam usados em operações aritméticas, apenas como valor literal.

Page 81: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Strings Em linguagem C criamos uma String  ao definir

um vetor de caracteres;

Exemplo:

char nome[50];char endereco[200];

Page 82: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Lendo Strings Ao ler Strings em linguagem C podemos usar o

especificador %s, o qual lê o conteúdo digitado pelo usuário até encontrar o primeiro espaço;

Ou podemos utilizar o comando: scanf("%[^\n]", &variavel);

O comando irá ler todo o conteúdo digitado pelo usuário até encontrar o \n, ou seja, a tecla enter;

Para apresentar a String também utilizamos o especificador %s.

Page 83: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Programa Exemplo Usando %s#include <stdio.h> #include <conio.h>

int main (void) { char nome[30];printf("Informe seu nome: ");scanf("%s", &nome);printf("Seu nome eh: %s", nome);

getch( ); return 0; }

Page 84: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Programa Exemplo Alternativo#include <stdio.h> #include <conio.h>

int main (void) { char nome[30];printf("Informe seu nome: ");scanf("%[^\n]", &nome);printf("Seu nome eh: %s", nome);

getch( ); return 0; }

Page 85: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Programa Usando Função gets( ) Também é possível utilizar a função gets para ler

uma String, veja o exemplo:

int main (void) { char nome[30];printf("Informe seu nome: ");gets(nome);printf("Seu nome eh: %s", nome);

getch( ); return 0; }

Page 86: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Formação da String Como a String é um vetor, também podemos

percorrer os vários caracteres que a constitui através de um laço de repetição;

Utilizaremos o laço de repetição para percorrer os caracteres da String até que encontre o caractere de controle \0, responsável por indicar o final da String.

Page 87: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

char nome [5] = { 'L', 'u', 'i', 's', '\0' };

char nome [5] = "Luis";

Repare que apesar da String possuir 4 caracteres, devemos sempre definir o tamanho com uma unidade a mais devido ao caractere \0 que delimita o fim da String.

luistavares.com

Inicializando String

Page 88: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Formação da String

O caractere de controle \0 é sempre o último caractere em uma String.

Page 89: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Percorrendo os Caracteresint main(void) {

char nome[30];int cont = 0;printf("Informe seu nome: ");scanf("%[^\n]", &nome);while (nome[cont] != '\0'){

printf("%c \n", nome[cont]);cont++;

} getch( );return 0;

}

Page 90: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Por se tratar de um vetor, não é possível comparar uma String com outra utilizando os operadores relacionais >, <, !=, etc.

Assim como não é possível atribuir o conteúdo de uma String diretamente a outra. Se optarmos por esta forma, teria de ser uma atribuição de posição por posição da String.

Funções para Strings

Page 91: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Para realizar essas operações utilizaremos algumas funções da biblioteca string.h

strcpy (str1, str2); /* Copia */ strcat (str1, str2); /* Concatena */ strcmp (str1, str2); /* Compara */ strlen (str1); /* Calcula tamanho */

Funções para Strings

Page 92: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include <string.h>int main (void) { char nome1[30];char nome2[30];printf("Informe seu nome: ");scanf("%s", &nome1);strcpy (nome2, nome1);printf("Valor da variavel nome1: %s \n", nome1);printf("Valor da variavel nome2: %s", nome2);

getch( ); return 0; }

Exemplo Copiando String

Page 93: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include <string.h>int main (void) { char frase[250];int tamanho;printf("Informe seu nome: ");scanf("%[^\n]", &frase);tamanho = strlen (frase);printf("Quantidade caracteres: %d", tamanho);

getch( ); return 0; }

Exemplo Tamanho de String

Page 94: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

char nome[100], sobrenome[100];printf("Informe seu nome: ");fflush(stdin);scanf("%[^\n]", &nome);printf("Informe seu sobrenome: ");fflush(stdin);scanf("%[^\n]", &sobrenome);strcat(nome, " ");strcat(nome, sobrenome);printf("Nome completo: %s", nome);

Exemplo Concatenando String

Page 95: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

char nome1[50], nome2[50];printf("Informe uma palavra: ");fflush(stdin);scanf("%s", &nome1);printf("Informe outra palavra: ");fflush(stdin);scanf("%s", &nome2);if (strcmp(nome1, nome2) < 0) {printf("A palavra que vem primeiro: %s", nome1);}else {printf("A palavra que vem primeiro : %s", nome2);}

Exemplo Comparando String

Page 96: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include <stdio.h>#include <conio.h>#include <ctype.h> int main (void) { printf ("tolower A = %c\n", tolower('A') ); printf ("toupper a = %c", toupper('a') ); getch( ); return 0;} Converte letra para maiúscula ou minúscula.

Funções da Biblioteca ctype.h

Page 97: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

#include <stdio.h>#include <conio.h>#include <string.h> /* Biblioteca Necessária */int main (void) { char s1[ ] = "ABC"; strlwr(s1); printf ("Palavra em minusculas: %s\n", s1); strupr(s1); printf ("Palavra em maiusculas: %s\n", s1); getch( ); return 0;} Converte palavra para maiúscula ou minúscula.

Funções strupr e strlwr

Page 98: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

luistavares.com

Exercícios

Page 99: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Linguagem CGravando Dados em Arquivo

Luis Antonio Tavares

luistavares.com

Page 100: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Gravando em Arquivo Veremos na sequência quatro funções básicas para gravar e ler dados de um arquivo com Linguagem C;

Existem outras funções para a mesma finalidade, mas as funções que serão abordadas são de uso mais simplificado.

Page 101: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Funções Básicas fopen ( ) – abrir arquivo;

fclose( ) – fechar arquivo;

fwrite( ) – grava o conteúdo no arquivo;

fread( ) – lê o conteúdo do arquivo.

Page 102: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Declarando o arquivo e um valor#include <stdio.h>#include <conio.h>

int main(void) {FILE * f;int a[3] = {4,5,6}; ...

Page 103: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Abrindo o Arquivo Abrindo o arquivo em modo de escrita binário.

f = fopen("arquivo.bin", "wb");if (f == NULL) {

printf("Erro ao abrir o arquivo! \n");getch( );return 0;

}

Page 104: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Gravando o dado no arquivo

Parâmetros de gravação: Variável, tamanho, quantidade e arquivo;

fwrite(a, sizeof( int ), 3, f);if (fclose( f ) != 0) { printf("Erro ao fechar o arquivo");}

Page 105: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Exemplo Completo Gravando

FILE * f;int a[3] = {4,5,6};f = fopen("arquivo.bin", "wb");if (f == NULL) {

printf("Erro ao abrir o arquivo! \n");getch( );return 0;

}fwrite(a, sizeof( int ), 3, f);if (fclose( f ) != 0) { printf("Erro ao fechar o arquivo");}

Page 106: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Após rodar o código anterior o programa irá gravar o conteúdo do vetor chamado a em um arquivo de nome arquivo.bin.

luistavares.com

Funcionamento

Page 107: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Abrindo o arquivo para ler o valor#include <stdio.h>#include <conio.h>int main(void) {

FILE * f;int a[3], cont;f = fopen("arquivo.bin", "rb");if (f == NULL) {

printf("Erro ao abrir o arquivo! \n");getch( );return 0;

}

Page 108: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Lendo o valor gravado em arquivo

fread(a, sizeof( int ), 3, f);for (cont=0; cont<=2;cont++){

printf("Valor lido: %d \n", a[cont]);}if (fclose( f ) != 0) { printf("Erro ao fechar o arquivo");}

Page 109: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

FILE * f;int a[3], cont;f = fopen("arquivo.bin", "rb");if (f == NULL) {printf("Erro ao abrir o arquivo! \n");getch( );return 0;}fread(a, sizeof( int ), 3, f);for (cont=0; cont<=2;cont++){printf("Valor lido: %d \n", a[cont]);}if (fclose( f ) != 0) { printf("Erro ao fechar o arquivo");}

luistavares.com

Exemplo completo lendo o valor

Page 110: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

Após rodar o código anterior o programa irá ler o conteúdo do arquivo de nome arquivo.bin e armazenar esse conteúdo no vetor chamado a.

luistavares.com

Funcionamento

Page 111: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

FILE * f;int a[3] = {4,5,6}; /* declara */f = fopen("arquivo.bin", "wb"); /* abre */fwrite(a, sizeof( int ), 3, f); /* grava*/fclose( f ); /* fecha */

Simplificando a escrita em arquivo

Page 112: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

FILE * f;int a[3], cont;f = fopen("arquivo.bin", "rb");fread(a, sizeof( int ), 3, f); /* leitura */for (cont=0; cont<=2;cont++){printf("Valor lido: %d \n", a[cont]);}fclose( f );

Simplificando a leitura de arquivo

Page 113: Revisão Luis Antonio Tavares luistavares.com. CodificaçãoCompilaçãoExecutável #include int main (void){ printf("Ola Mundo"); getch ( ); return 0; }

luistavares.com

Exercícios