Introdução a linguagem c karen lowhany

155
Lógica de Programação Prof. Camilo Carmo dos Santos Introdução à Linguagem C Técnico em informática

description

Material: Prof. Camilo

Transcript of Introdução a linguagem c karen lowhany

Page 1: Introdução a linguagem c   karen lowhany

Lógica de Programação

Prof. Camilo Carmo dos Santos

Introdução à Linguagem C

Técnico em informática

Page 2: Introdução a linguagem c   karen lowhany

MONTADOR (assembler)Tradutor para linguagens de 2a geração.

COMPILADOR:

TRADUTOR

CÓDIGO FONTE ... LET SOMA = VAR1 + TOTAL ...

(linguagem de prog.)

CÓDIGO OBJETO ... 00010110111001011001011010 ...

(“executável”)

Tradução

2

COMPILADOR:Traduz todo o programa de uma vez.

INTERPRETADOR:Traduz o programa instrução por instrução.

Page 3: Introdução a linguagem c   karen lowhany

Histórico da Linguagem C

Criada por Denis Ritchie, na década de 1970, para uso em um computador DEC PDP-11 em Unix

C++ é uma extensão da linguagem C

3

C++ é uma extensão da linguagem C

O sistema Unix é escrito em C e C++

Page 4: Introdução a linguagem c   karen lowhany

Estrutura básica de um programa C

diretivas para o pré-processadordeclaração de variáveis globaismain (){

declaração de variáveis locais da função main

4

declaração de variáveis locais da função maincomandos da função main

}

Page 5: Introdução a linguagem c   karen lowhany

Pro

f. Camilo Carm

o dos Santos

Diretivas para o processador -Bibliotecas

Diretiva #include permite incluir uma biblioteca

Bibliotecas contêm funções pré-definidas, utilizadas nos programas

Exemplos

Funções de entrada e saída#include <stdio.h>

Lógica de Pro

gramaçã

o –

Pro

f. Camilo Carm

o dos Santos

Cap. 1 - Visão Geral 5

Funções de texto#include <string.h>

Funções matemáticas#include <math.h>

Funções padrão#include <stdlib.h>

Funções de entrada e saída#include <stdio.h>

Page 6: Introdução a linguagem c   karen lowhany

O ambiente Dev-C++

O Dev-C++ é um ambiente de desenvolvimento de programas em C e

6

desenvolvimento de programas em C e C++ (editor, compilador, bibliotecas...)

Pode ser baixado de: http://www.bloodshed.net/devcpp.html

Page 7: Introdução a linguagem c   karen lowhany

Pro

f. Camilo Carm

o dos Santos Usando o Dev-C++

Inicie o Dev-C++ pelo ícone ou pelo menuCrie um novo arquivo, com o comando File, New Source File

Edite o programa da página seguinte

Lógica de Pro

gramaçã

o –

Pro

f. Camilo Carm

o dos Santos

Cap. 1 - Visão Geral 77

Page 8: Introdução a linguagem c   karen lowhany

Usando o Dev-C++ (3)

#include <stdio.h>

#include <stdlib.h>

main()

{

printf ("Alo mundo!");

8

printf ("Alo mundo!");

system("PAUSE");

}

Page 9: Introdução a linguagem c   karen lowhany

Usando o Dev-C++ (4)

Salve o programa com o nome exemplo.cpp

Compile o programa com o comando Executar, Compilar ou com a tecla Ctrl-F9

Se houver algum erro de sintaxe, aparece uma ou mais mensagens no rodapé da janela. Neste caso, corrija o programa e repita.

9

caso, corrija o programa e repita.

Se não houver erros, execute o programa com o comando Executar, Executar ou com a tecla Ctrl-F10

Page 10: Introdução a linguagem c   karen lowhany

Dicas

Termine todas as linhas com ;

Sempre salve o programa antes de compilar

Sempre compile o programa antes de executar

Quando ocorrer um erro de compilação, dê um duplo clique sobre a mensagem de erro para destacar o comando errado no programa

10

destacar o comando errado no programa

Verifique também a linha anterior, que pode ser a responsável pelo erro, especialmente se faltar o ;

Use comentários, iniciados por //

Page 11: Introdução a linguagem c   karen lowhany

Template (Exemplo 1)

#include <stdio.h>

#include <stdlib.h>

main()

{

11

{

printf ("Alo mundo!");

system("PAUSE");

}

Page 12: Introdução a linguagem c   karen lowhany

DETALHE:

• TODO o programa vai começar com bibliotecas no topo, em “C” as principais são:

• #include <stdio.h>• #include <stdio.h>• #include <stdlib.h>

Page 13: Introdução a linguagem c   karen lowhany

• Stdlib.h : é um arquivo cabeçalho da biblioteca de propósito geral padrão da liguagem de programação C. Ela possui funções envolvendo alocação de memória, controle de processos, conversões e outras. Ela é compatível com C++ e é chamada cstdlib em C++. O nome "stdlib" vem de standard library (standard library é biblioteca padrão em inglês).

• Stdio.h: é um cabeçalho da biblioteca padrão do C. Seu nome vem da expressão inglesa standard input-output header (cabeçalho padrão de entrada/saída).(cabeçalho padrão de entrada/saída).

• Possui definições de subrotinas relativas às operações de entrada/saída, como leitura de dados digitados no teclado e exibição de informações na tela do programa de computador. Também possui numerosas definições de constantes, variáveis e tipos. É um dos cabeçalhos mais populares da linguagem de programação C, intensivamente utilizado tanto por programadores iniciantes como por experientes.

Page 14: Introdução a linguagem c   karen lowhany

Arrumando o programa:

#include <stdio.h>

#include <stdlib.h>

main()

{

14

{

printf ("Alo mundo!");

printf("\n");// PULA UMA LINHA

system("PAUSE");

}

Page 15: Introdução a linguagem c   karen lowhany

EXERCÍCIO

FAÇA UM PROGRAMA QUE ESCREVA O SEU NOME NA

15

SEU NOME NA TELA DO COMPUTADOR.

Page 16: Introdução a linguagem c   karen lowhany

DeclaraçõesDeclaram as variáveis e seus tiposOs nomes das variáveis devem conter

apenas letras, dígitos e o símbolo _Os principais tipos são: int, float, double echar

Exemplos

16

int n;

int quantidade_valores;

float x, y, somaValores;

char sexo;

char nome[40];

C diferencia letras maiúsculas de minúsculas!int n, N;n é diferente de N!

Page 17: Introdução a linguagem c   karen lowhany

Algoritmo...... Na Linguagem C...

#include <stdio.h>

#include <stdlib.h>

main()

{

17

Real: n1, n2, n3, media

{

double n1, n2, n3, media;

system("PAUSE");

}

Page 18: Introdução a linguagem c   karen lowhany

Comando de atribuiçãoAtribui o valor da direita à variável da

esquerdaO valor pode ser:

uma constante,uma variável ou uma expressão

18

uma expressão

Exemplosx = 4; --> lemos x recebe 4

y = x + 2;

y = y + 4;

valor = 2.5;

sexo = 'F'

Page 19: Introdução a linguagem c   karen lowhany

Entrada e Saída de Dados

19

Page 20: Introdução a linguagem c   karen lowhany

Entrada de Dados

Função scanf scanf ("formatos", &var1, &var2,...)

Exemplos:

int i, j;

float x;

%d inteiro

%f float

20

float x;

char c;

scanf("%d", &i);

scanf("%d %f", &j, &x);

scanf("%c", &c);

scanf("%s", nome);

%f float

%lf double

%c char

%s palavra

Page 21: Introdução a linguagem c   karen lowhany

Entrada de Dados (Exemplo 2)Algoritmo

Real: n1, n2, n3, media

Na Linguagem C...

#include <stdio.h>

#include <stdlib.h>

main()

{

double n1, n2, n3, media;ler n1

21

double n1, n2, n3, media;

scanf ("%lf",&n1);

scanf ("%lf",&n2);

scanf ("%lf",&n3);scanf ("%lf %lf %lf",&n1, &n2, &n3);

system("PAUSE");

}

ler n1ler n2ler n3

ler n1, n2, n3

Page 22: Introdução a linguagem c   karen lowhany

Operadores Matemáticos

Divide x por yx / y /

Multiplica x e yx * y*

Subtrai y de xx – y -

Soma x e yx + y+

ComentárioExemploOperador

22

Decrementa em 1 o valor de xx----

Incrementa em 1 o valor de xx++++

Resto da divisão de x por yx % y %

Page 23: Introdução a linguagem c   karen lowhany

Entrada de Dados (exemplo 3)<< --- Parou Aqui

Real: n1, n2, n3, media

Na Linguagem C...

#include <stdio.h>

#include <stdlib.h>

main()

{

Algoritmo

23

{

double n1, n2, n3, media;

scanf ("%lf %lf %lf",&n1, &n2, &n3);

media=(n1+n2+n3)/3;

printf(“a media é: %lf”, media);

system("PAUSE");

}

ler n1, n2, n3

media=(n1+n2+n3)/3

Page 24: Introdução a linguagem c   karen lowhany

Saída de Dados

Função printfprintf ("formatos", var1, var2,...)

Exemplos:

int i, j;

float x;

%d inteiro

%f float

24

float x;

char c;

printf("%d", i);

printf("%d, %f", j, x);

printf("%c", c);

printf("%s", nome);

%f float

%lf double

%c char

%s palavra

Page 25: Introdução a linguagem c   karen lowhany

Saída de Dados (Exemplo 4)

#include <stdio.h>#include <stdlib.h>main(){

int i, j;float x;char c;

25

char c;char nome [10];i = 1; j = 2; x = 3; printf("%d", i);printf(“,");printf("%d, %f", j, x);

system("PAUSE");}

Page 26: Introdução a linguagem c   karen lowhany

Saída de Dados (Exemplo 5)#include <stdio.h>#include <stdlib.h>main(){

double n1, n2, n3, media; // definicao de variaveisscanf ("%lf %lf %lf",&n1, &n2, &n3); // entrada de dadosmedia=(n1+n2+n3)/3; // operacao matemática printf("%f", n1); // saida de dados na tela

26

printf("%f", n2); // saida de dados na telaprintf("%f", n3); // saida de dados na telaprintf("%f", media); // saida de dados na tela

system("PAUSE"); // pausa do sistema, pressione qualquer tecla

}

Page 27: Introdução a linguagem c   karen lowhany

Saída de Dados (Exemplo 5)

#include <stdio.h>#include <stdlib.h>main(){double n1, n2, n3, media; // definicao de variaveis

printf(“DIGITE 3 NÚMERO PARA CALCULAR A MEDIA"); scanf ("%lf %lf %lf",&n1, &n2, &n3); // entrada de dados: Leia &n1, &n2,

&n3media=(n1+n2+n3)/3; // operacaoprintf("%f", n1); // saida de dados 1° valor

27

printf("%f", n1); // saida de dados 1° valorprintf(","); // colocando uma virgula

printf("%f", n2);// saida de dados 2° valorprintf(",");//colocando outra virgula

printf("%f", n3);// saida de dados 3° valorprintf("\n"); // pulando uma linha

printf("A media e: "); // Exibindo a frase “a média e:”printf("%f",media); // Exibindo o valor da variável média;

printf("\n"); // pulando outra linhasystem("PAUSE"); // Parada do sistema

}

Page 28: Introdução a linguagem c   karen lowhany

Saída de Dados (Exemplo 6)#include <stdio.h>#include <stdlib.h>main(){

// definicao de variaveisint i, j; // variavel do tipo inteirofloat x; // variavel do tipo real ou ponto flutuantechar c; // variavel do tipo caracterchar nome[30]; // variavel do tipo caracter com várias posições ou string.......

//entrada de dadosscanf("%d", &i); // lendo 1 valor do tipo inteiro

28

scanf("%d", &i); // lendo 1 valor do tipo inteiroscanf("%d %f", &j, &x); // lendo 1 valor tipo inteiro e 1 valor realscanf("%s", &c); // Ler um caractere qualquerscanf("%s", nome); // Ler um nome qualquer com no máximo 30 posições

// exibindo os dadosprintf("%d", i); // exibindo o inteiroprintf("%d, %f", j, x); // exibindo o inteiro eo realprintf("%c", c); // exibindo caractereprintf("%s", nome); // exibindo a variável com vários caracteres

system("PAUSE"); // uma paradinha básica}

Page 29: Introdução a linguagem c   karen lowhany

ARRUMANDO... (Exemplo 6)<< --- Parou aqui.{

int i, j;

float x;

char c;

char nome[30];

printf("DIGITE UM NUMERO INTEIRO\n");

scanf("%d", &i);

printf("DIGITE UM NUMERO INTEIRO E UM REAL\n");

scanf("%d %f", &j, &x);

printf("DIGITE UM CARACTER\n");

29

printf("DIGITE UM CARACTER\n");

scanf("%s",&c);

printf("DIGITE UMA PALAVRA\n");

scanf("%s",nome);

printf("\n O numero inteiro e:%d", i);

printf("\n o inteiro e o real sao:%d, %f", j, x);

printf("\n o caracter e:%c", c);

printf("\na Palavra e:%s", nome);

system("PAUSE");

}

Page 30: Introdução a linguagem c   karen lowhany

Exemplo 7//PROGRAMINHA BOBO QUE SOMA VALORES#include <stdio.h>#include <stdlib.h>main(){

//declaracao de variaveisint n;int quantidade_valores;float x, y, somaValores;

30

float x, y, somaValores;char sexo;char nome[40];// operacaosomaValores =1+1;

//saida de dadosprintf("somaValores=%f", somaValores);

system("PAUSE");}

Page 31: Introdução a linguagem c   karen lowhany

Exemplo 8#include <stdio.h>#include <stdlib.h>main(){

// definicao de vairiaveisint n;

int quantidade_valores;float x, y, somaValores;char sexo;char nome[40];

31

char nome[40];x = 1; y = 2; // valores passados pelas variaveis//atribuicaosomaValores = x + y; // mostra mensagem de texto na telaprintf("alo mundo \n");// mostra valor na telaprintf("somaValores=%f", somaValores);

printf("\n");system("PAUSE");

}

Page 32: Introdução a linguagem c   karen lowhany

Entrada e SaídaExemplo 10

#include <stdio.h>

#include <stdlib.h>

main()

{

double n1, n2, n3, media;

printf("Digite 3 notas: ");

Exemplo 9

#include <stdio.h>

#include <stdlib.h>

main()

{

double n1, n2, n3, media;

scanf ("%lf %lf %lf",&n1, &n2, &n3);

32

printf("Digite 3 notas: ");

scanf ("%lf %lf %lf",&n1, &n2, &n3);

media=(n1+n2+n3)/3;

printf ("Media: %.2lf",media);

printf (“\n”);

system("PAUSE");

}

scanf ("%lf %lf %lf",&n1, &n2, &n3);

media=(n1+n2+n3)/3;

printf ("%lf",media);

system("PAUSE");

}

Page 33: Introdução a linguagem c   karen lowhany

Exemplo 111) Tendo como dados de entrada a altura e o sexo de uma

pessoa, construa um programa que calcule seu peso ideal, utilizando a seguinte fórmula: peso ideal = (72.7*h) – 58

#include <stdio.h>#include <stdlib.h>#include <conio.h>// conio.h é uma biblioteca que serve para manipular caracteres na tela

main()

33

main(){

float altura, pesoIdeal;char sexo;printf ("\nDigite sua altura em metros: ");scanf ("%f",&altura);printf ("\nDigite seu sexo (F/M): ");sexo=getche(); // evento da biblioteca conio.h pega a tecla digitadapesoIdeal=(72.7*altura)-58;printf ("\nO sexo digitado foi %c e o peso ideal desta pessoa eh %.2f quilos\n", sexo, pesoIdeal);

// Valor das variaveis jogado dentro do testosystem("PAUSE");

}

Page 34: Introdução a linguagem c   karen lowhany

PROGRAMA I.M.C.#include <stdio.h>#include <stdlib.h>

main(){

float altura, peso, imc;printf ("\nDigite sua altura em metros: \n");scanf ("%f",&altura);printf ("\nDigite seu peso: \n");scanf ("%f",&peso);

imc = peso /(altura*altura);

printf ("\n O SEU IMC E: %.2f",imc ); printf("\n");

// aqui introduziremos o "IF"...

system("PAUSE");}

Page 35: Introdução a linguagem c   karen lowhany

PROGRAMA I.M.C.#include <stdio.h>#include <stdlib.h>main(){

float altura, peso, imc;printf ("\nDigite sua altura em metros: \n");scanf ("%f",&altura);printf ("\nDigite seu peso: \n");scanf ("%f",&peso);

imc = peso /(altura*altura);

printf ("\n O SEU IMC E: %.2f",imc ); printf("\n");printf("\n");

// aqui introduziremos o "IF"...if (imc<19){printf ("Voce esta abaixo do peso \n"); }if (imc>19&&imc<25) {printf ("Voce esta no peso ideal \n");

}if (imc>25 ){printf ("Voce esta acima do peso \n"); }

system("PAUSE");}

Page 36: Introdução a linguagem c   karen lowhany

Operadores de Atribuição

Equivale a x = x * yx *= y *=

Equivale a x = x – yx -= y-=

Equivale a x = x + yx += y +=

Atribui o valor de y a xx = y=

ComentárioExemploOperador

36

Equivale a x = x % yx %= y%=

Equivale a x = x / yx /= y /=

Page 37: Introdução a linguagem c   karen lowhany

Funções Matemáticas

Logaritmo natural de xlog(x)log

Arredonda o número Real para baixo; floor(3.2) é 3floor(x)floorValor absoluto de xfabs(x)fabse elevado à potencia xexp(x)expCosseno de x (x em radianos)cos(x)cos

Arredonda o número real para cima; ceil(3.2) é 4ceil(x)ceilComentárioExemploFunção

37

Tangente de xtan(x)tanRaiz quadrada de xsqrt(x)sqrtSeno de xsin(x)sinCalcula x elevado à potência ypow(x,y)powLogaritmo decimal de xlog10(x)log10Logaritmo natural de xlog(x)log

#include <math.h>

Page 38: Introdução a linguagem c   karen lowhany

// LAGORITMO PARA FUNÇÕES MATEMÁTICAS#include <conio.h> // necessária para getch()#include <math.h> // necessária para pow() e sqrt()#include <stdio.h> // necessária para printf()

int main(){

int a = 2, b = 3;

printf("%d + %d = %d\n", a, b, a + b);printf("%d - %d = %d\n", a, b, a - b);printf("%d x %d = %d\n", a, b, a * b);printf("%d / %d = %0.1f\n", a, b, (float) a / b); // resultado fracionárioprintf("%d elevado a %d = %0.1f\n", a, b, pow(a, b)); // pow(base, expoente)

printf("raiz quadrada de %d = %0.1f\n", a, sqrt(a));

getch();return 0;

}

Page 39: Introdução a linguagem c   karen lowhany

2) Construa um programa que tendo como entrada dois pontos quaisquer do plano P(x1,y1) e Q(x2,y2), imprima a distância entre eles. A fórmula da distância é:

#include <stdio.h>

#include <stdlib.h>

#include <math.h>

main()

{

float x1, y1, x2, y2;

float distancia;

Exemplo 12<����--PAROU AQUI

39

printf ("\nDigite o valor de x1: ");

scanf ("%f",&x1);

printf ("\nDigite o valor de y1: ");

scanf ("%f",&y1);

printf ("\nDigite o valor de x2: ");

scanf ("%f",&x2);

printf ("\nDigite o valor de y2: ");

scanf ("%f",&y2);

distancia=sqrt(pow((x2-x1),2)+pow((y2-y1),2));

printf ("\nA distancia entre os pontos P1 e P2 eh %.2f\n", distancia);

system("PAUSE");

}

Page 40: Introdução a linguagem c   karen lowhany

Exercicio I3) Construa um programa que calcule a quantidade de latas

de tinta necessárias e o custo para pintar tanques cilíndricos de combustível, onde são fornecidos a altura e o raio desse cilindro.

Sabendo que:- a lata de tinta custa R$20,00- cada lata contém 5 litros

40

- cada litro de tinta pinta 3 metros quadrados.Sabendo que:Área do cilindro=3.14*raio2 + 2*3.14*raio*alturae que raio e altura são dados de entrada.

Page 41: Introdução a linguagem c   karen lowhany

Resposta do Exercício I#include <stdio.h>#include <stdlib.h>#include <math.h>main(){

float altura, raio, areaCilindro, qtdadeLitros, qtdadeLatas, custo;printf ("\nDigite o valor da altura em metros: ");scanf ("%f",&altura);printf ("\nDigite o valor do raio em metros: ");scanf ("%f",&raio);

41

scanf ("%f",&raio);areaCilindro=3.14*raio*raio + 2*3.14*raio*altura;printf ("\nA area do cilindro eh %.2f metros quadrados", areaCilindro);qtdadeLitros=areaCilindro/3;printf ("\nA qtidade de litros necessaria eh de %.2f ", qtdadeLitros);qtdadeLatas=qtdadeLitros/5;printf ("\nA qtidade de latas necessaria eh de %.2f ", qtdadeLatas);custo=qtdadeLatas*20;printf ("\nO valor total das tintas eh de R$ %.2f \n", custo);system("PAUSE");

}

Page 42: Introdução a linguagem c   karen lowhany

Operadores Relacionais

O conteúdo de x é maior ou igual ao de yx >= y >=

O conteúdo de x é menor ou igual ao de yx <= y<=

O conteúdo de x é diferente do de yx != y !=

O conteúdo de x é igual ao de yx == y==

ComentárioExemploOperador

42

O conteúdo de x é maior que o de yx > y>

O conteúdo de x é menor que o de yx < y <

As expressões relacionais em C retornam :• 1 se verdadeiro e;• 0 se falso.

Page 43: Introdução a linguagem c   karen lowhany

Operadores Lógicos&& (E lógico): retorna verdadeiro se ambos os operandos são

verdadeiros e falso nos demais casos.Exemplo: if( a>2 && b<3).

|| (OU lógico): retorna verdadeiro se um ou ambos os operandos são verdadeiros e falso se ambos são falsos.Exemplo: if( a>1 || b<2).

43

! (NÃO lógico): usada com apenas um operando. Retorna verdadeiro se o operando é falso e vice-versa.Exemplo: if( !var ).

Page 44: Introdução a linguagem c   karen lowhany

PROGRAMINHA COM LÓGICA:#include<stdio.h>

#include<stdlib.h>

main()

{

float x = 3.0;

int n = 55;

int i = 0;

int resultado;

// operadores lógicos "0" e falso, e "1" e verdadeiro// operadores lógicos "0" e falso, e "1" e verdadeiro

system(“PAUSE”);

}

Page 45: Introdução a linguagem c   karen lowhany

CONTINUANDO...........

// operadores lógicos "0" e falso e "1" e verdadeiro

resultado = (i != 0);

printf("\nO resultado e %d", resultado);

resultado = (x == 0);

printf("\nO resultado e %d", resultado);

resultado = (n < 100);

printf("\nO resultado e %d", resultado);

resultado = ((i != 0) || (x == 0));

printf("\nO resultado e %d", resultado);

resultado = ((i != 0) || (x == 0) || (n < 100));

printf("\nO resultado e %d", resultado);

printf("\n");

system("PAUSE");

}

Page 46: Introdução a linguagem c   karen lowhany

PROGRAMA COMPLETO:#include<stdio.h>

#include<stdlib.h>

main()

{

float x = 3.0; int n = 55; int i = 0; int resultado;

// operadores lógicos "0" e falso e "1" e verdadeiro

resultado = (i != 0);

printf("\nO resultado e %d", resultado);

resultado = (x == 0);

printf("\nO resultado e %d", resultado);printf("\nO resultado e %d", resultado);

resultado = (n < 100);

printf("\nO resultado e %d", resultado);

resultado = ((i != 0) || (x == 0));

printf("\nO resultado e %d", resultado);

resultado = ((i != 0) || (x == 0) || (n < 100));

printf("\nO resultado e %d", resultado);

printf("\n");

system("PAUSE");

}

Page 47: Introdução a linguagem c   karen lowhany

Relembrando:Operadores Lógicos

Não F → VV ou F → VV e F → F

Não V → FV ou V → VV e V → V

Tabela NÃOTabela OUTabela E

47

F ou F → FF e F → F

F ou V → VF e V → F

Não F → VV ou F → VV e F → F

Page 48: Introdução a linguagem c   karen lowhany

EXERCÍCIO:Dadas as declarações abaixo, indique cada um dos itens na

seqüência:

int i=1, j=2, k= 3, n=2;

float x= 3.3, y =4.4;

Page 49: Introdução a linguagem c   karen lowhany

Estrutura condicional composta

Comando if...elseif (condição)

comando;

else

comando;

if (condição) {

if (peso= =peso_ideal)printf (“Vc está em forma!”);

else

Executa o comando se a condição for qualquer coisa diferente de zero!

if (condição) {

comando1;

comando2;

}

else {

comando3;

comando4;

}

else printf (“Necessário fazer dieta!”);

em pseudo-código:se (peso= =peso_ideal)

entao exibir “Vc está em forma!”senao exibir “Necessário fazer dieta!”

Page 50: Introdução a linguagem c   karen lowhany

Estrutura SWITCH

switch (numero){case 1: printf ("Janeiro\n"); break;case 2: printf ("Fevereiro\n"); break;case 3: printf ("Marco\n"); break;case 4: printf ("Abril\n"); break;case 5: printf ("Maio\n"); break;case 6: printf ("Junho\n"); break;case 6: printf ("Junho\n"); break;case 7: printf ("Julho\n"); break;case 8: printf ("Agosto\n"); break;case 9: printf ("Setembro\n"); break;case 10: printf ("Outubro\n"); break;case 11: printf ("Novembro\n"); break;case 12: printf ("Dezembro\n"); break;

default: printf (“Mes invalido\n"); }

Page 51: Introdução a linguagem c   karen lowhany

Exercício 11) Dados dois números A e B, identifica o maior número.

#include <stdio.h>#include <stdlib.h>main(){

int A, B, maior;printf ("Digite o valor de A: ");scanf ("%d", &A);printf ("Digite o valor de B: ");scanf ("%d", &B);if (A>B)

maior=A;else

maior=B;printf ("O maior valor e: %d\n", maior);system("pause");

}

Page 52: Introdução a linguagem c   karen lowhany

Exercício 22) Escreva um algoritmo para determinar se uma

pessoa é maior ou menor de idade.

#include <stdio.h>#include <stdlib.h>main (){int idade;printf ("Digite a idade da pessoa: ");printf ("Digite a idade da pessoa: ");scanf ("%d", &idade);if (idade>=18)

printf ("Pessoa eh maior de idade.\n");else

printf ("Pessoa eh menor de idade.\n");system("pause");}

Page 53: Introdução a linguagem c   karen lowhany

Exercício 3Ou utilizando boolean:

#include <stdio.h>

#include <stdlib.h>

main (){

int idade;

bool status;

printf ("Digite a idade da pessoa: ");

scanf ("%d", &idade);

if (idade>=18)

status=true;

else

status=false;

if (status)

printf ("Pessoa eh maior de idade.\n");

else

printf ("Pessoa eh menor de idade.\n");

printf(“%b”,status);

system("pause");

}

Page 54: Introdução a linguagem c   karen lowhany

Exercícios4) Faça um algoritmo que leia a quantidade

comprada de um produto e o preço unitário deste produto.

- Se o preço total a ser pago for inferior a R$ 100, então forneça um desconto de 5%.

- Se o preço total a ser pago ficar entre 100 e 1000, então forneça um desconto de 5% e armazene um bônus de 5% em cima do valor total. total.

- Se o preço total a ser pago for superior a 1000, então forneça um desconto de 10%, armazene um bônus de 5% em cima do valor total e escreva na tela que o cliente será cadastrado como ‘Cliente Vip’.

Page 55: Introdução a linguagem c   karen lowhany

#include <stdio.h>

#include <stdlib.h>

main(){

int qtdade;

float preco, valorTotal, descontado, bonus;

printf ("\nDigite a qtdade: ");

scanf ("%d", &qtdade);

printf ("\nDigite o preco unitario: ");

scanf ("%f", &preco);

valorTotal=qtdade*preco;

if (valorTotal<100)

descontado=valorTotal*0.95;

else if (valorTotal>=100 && valorTotal<=1000)

{

descontado=valorTotal*0.95;descontado=valorTotal*0.95;

bonus=valorTotal*0.05;

}

else if (valorTotal>1000)//poderia ser soh: else

{

descontado=valorTotal*0.90;

bonus=valorTotal*0.05;

printf ("\n Cliente vip!\n");

}

printf ("\n Valor Total eh %.2f\n", valorTotal);

printf ("\n Valor com desconto eh %.2f\n", descontado);

printf ("\n Bonus eh %.2f\n", bonus);

system("pause");

}

Page 56: Introdução a linguagem c   karen lowhany

Laço While (Enquanto)

O laço while é usado quando queremos que um bloco de instruções seja executado ENQUANTOuma condição for verdadeira (true).

ex.: int valor = 1;while(valor <= 10){printf("%d ", valor); valor++; }

Page 57: Introdução a linguagem c   karen lowhany

Laço While

Lembre-se de que a condição testada em um laço while deve resultar em um valor boolean (true ou false). O trecho de código seguinte deixa isso mais claro:

Page 58: Introdução a linguagem c   karen lowhany

#include <stdio.h>

#include <stdlib.h>

main()

{

int continuar = 1; // 1 é true em C

int valor = 1;

while(continuar) // estou dizendo enquanto "continua" for verdadeiro

{ {

printf("%d ", valor);

valor++;

if(valor > 10) continuar = 0; // 0 é false em C

}

printf("\n");

system("PAUSE");

}

Page 59: Introdução a linguagem c   karen lowhany

Passo a passo....#include <stdio.h>

#include <stdlib.h>

main()

{

int valor = 1;

while(valor <= 10)while(valor <= 10)

{

printf("%d ", valor);

valor++;

}

system("PAUSE");

}

Page 60: Introdução a linguagem c   karen lowhany

Laço WhileEste trecho de código exibe os números de 1 à 10 na página. Veja agora o mesmo trecho de código, desta vez contando de 10 à 1:

int valor = 10;while(valor >= 1){ printf("%d ", valor);valor--; // decrementando}

Page 61: Introdução a linguagem c   karen lowhany

Laço While#include <stdio.h>

#include <stdlib.h>

main()

{

int valor = 10;

while(valor >= 1)

{

printf("%d ", valor);

valor--; // decrementando

_sleep(1000); // função nova “_sleep”, faz a espera de tempo

}

system("PAUSE");

}

Page 62: Introdução a linguagem c   karen lowhany

Usando o laço for em CO laço for é usado quando queremosexecutar um bloco de instruções umdeterminado número de vezes. Estelaço é composto de três partes:

for(inicialização;teste;incremento/decremento)for(inicialização;teste;incremento/decremento){bloco de instruções}

Page 63: Introdução a linguagem c   karen lowhany

Usando o laço for em C•a parte inicialização nós definimos o valor inicial davariável de controle. Na parte teste nós usamos ovalor da variável de controle para testar acontinuidade ou interrupção do laço.

••inalmente, na parte incremento/decremento nósalteramos o valor da variável de controle para cimaou para baixo. Veja um exemplo:

Page 64: Introdução a linguagem c   karen lowhany

Laço For

main(){ int i;for(i = 1; i <= 10; i++){ printf("%d ", i);printf("%d ", i);} printf("\n\n"); system("PAUSE");}

Page 65: Introdução a linguagem c   karen lowhany

Laço For : Mostrar os números pares de 0 a 20.int main({

int i;

for(i = 0; i <= 20; i += 2)

{ {

printf("%d ", i);

}

printf("\n\n");

system("PAUSE");

} // Observe que "i += 2" é o mesmo que "i = i + 2".

Page 66: Introdução a linguagem c   karen lowhany

Laço For

om exceção da parte de testes, podemos inserir múltiplas expressões nas demais partes de um laço for. Veja:

Page 67: Introdução a linguagem c   karen lowhany

#include <stdio.h>

#include <stdlib.h>

main()

{

int i, x;

for(i = 0, x = 2; i <= 10; printf("%d ", i * x), i++);i++);

// agora com expressões matemáticas ☺

printf("\n\n");

system("PAUSE");

}

Page 68: Introdução a linguagem c   karen lowhany

Laço Formain()

{

int a;

for ( a = 0; a <= 10; a = a + 1 )

{

int b;int b;

printf("\nDigite um valor para b: ");

scanf("%d", &b);

printf("\na = %d, b = %d e sua soma = %d.", a, b, a + b);

}

printf("\nA variavel a ainda existe e vale %d.", a);

system("PAUSE");

}

Page 69: Introdução a linguagem c   karen lowhany

Loop Infinito erro clássicode programação

Page 70: Introdução a linguagem c   karen lowhany

Loop infinito#include <stdio.h>

#include <stdlib.h>

main()

{

int valor = 1;

while(valor >= 1)

{ {

printf("%d ", valor);

valor ++ ;

}

system("PAUSE");

}

Page 71: Introdução a linguagem c   karen lowhany

Loop infinito (Caso mais comum, falta de atenção)#include <stdio.h>

#include <stdlib.h>

main()

{

int valor = 1;

while(valor != 10) // � Aqui mora o perigo

{

printf("%d ", valor);

valor = valor + 2 ;

}

system("PAUSE");

} // o valor vai pular o "10" e continuar compilando...

Page 72: Introdução a linguagem c   karen lowhany

Lendo com cin e o operador de extração >>O objeto cin (“C in”) manipula toda entrada do

teclado por meio do operador de extração >> que conecta a entrada de dados à variável que a conterá.

Page 73: Introdução a linguagem c   karen lowhany

EXERCÍCIOS

Faça um programa que pega um númerodigitado e imprime na tela esse número deasteriscos.

Ex: o usuário digita 7 e o programa imprime *******

Page 74: Introdução a linguagem c   karen lowhany

#include <stdio.h>

#include <stdlib.h>

main()

{

int valor,cont;

printf("DIGITE UM NUMERO: ");

scanf("%d",&valor);

cont=0;

while(cont<= valor)while(cont<= valor)

{

printf("*");

cont = cont+1;

}

printf("\n");

system("PAUSE");

}

Page 75: Introdução a linguagem c   karen lowhany

EXERCÍCIOS

2) Escreva um programa que apresente a série de Fibonacci até o décimo quinto termo. A série de Fibonacci é formada pela seqüência: 1, 1, 2, 3, 5, 8, 13, 21, 34, ... .8, 13, 21, 34, ... .

Page 76: Introdução a linguagem c   karen lowhany

#include <stdio.h>

#include <stdlib.h>

int num, f1, f2, f3, cont;

main()

{

printf("Digite um numero:\n ");

scanf("%i", &num);

f1=0;f2=1; // inicia com esses valore para começar a sequencia..

num=num-1; // para não fazer mais voltas que o pedido.num=num-1; // para não fazer mais voltas que o pedido.

// uma sequencia a mais ele vai fazer de qualquer jeito

//devido aos valores iniciais "0" e "1"

for(cont=0;cont<=num;cont++)

{

f3=f2+f1;

printf("%i - ",f3);

f1=f2;f2=f3;

}

system("PAUSE");

}

Page 77: Introdução a linguagem c   karen lowhany

EXERCÍCIOS

Em uma eleição presidencial existem 4 candidatos. Os votos são informados por código. Os dados utilizados para a contagem obedecem à seguinte codificação:

• 1, 2, 3, 4 = voto para os respectivos candidatos

• 5 = nulo

• 6 = voto em branco• 6 = voto em branco

Elabore um programa em C que calcule e escreva:

• O total de votos para cada candidato e seu percentual sobre o total

• O total de votos nulos e seu percentual sobre o total

• O total de votos brancos e seu percentual sobre o total

Como finalizador do conjunto de votos, tem-se o valor 0.

Page 78: Introdução a linguagem c   karen lowhany

#include<stdlib.h>

#include<stdio.h>

int voto,cand1,cand2,cand3,cand4,ttal;

main()

{voto = 13;// ou qualquer numero diferente de “0”

while (voto!= 0)

{

printf("1-Candidato LulaMolusco;\n");

printf("2-Candidato MotoSerra;\n");

printf("3-Candidato DilmaVez;\n");

printf("4-Candidato Siqueirido;\n");

printf("DIGITE O NUMERO DO SEU CANDIDATO: ");

scanf("%d",&voto);

if (voto == 1)

cand1 = cand1+1;

if (voto == 2) if (voto == 2)

cand2 = cand2+1;

if (voto == 3)

cand3 = cand3+1;

if (voto == 4)

cand4 = cand4+1;

system("cls"); // limpar a tela

} // falta fazer os calculos

printf("\n1-Candidato LulaMolusco; %d",cand1);

printf("\n2-Candidato MotoSerra;%d",cand2);

printf("\n3-Candidato DilmaVez;%d",cand3);

printf("\n4-Candidato Siqueirido;%d",cand4);

system("PAUSE");

}

Page 79: Introdução a linguagem c   karen lowhany

#include<stdio.h>int voto,cand1,cand2,cand3,cand4,ttal;float aux;main(){voto = 13;// ou qualquer numero diferente de “0”

while (voto!= 0){

printf("1-Candidato LulaMolusco;\n");printf("2-Candidato MotoSerra;\n");printf("3-Candidato DilmaVez;\n");printf("4-Candidato Siqueirido;\n");

printf("DIGITE O NUMERO DO SEU CANDIDATO: ");scanf("%d",&voto);

if (voto <= 4){

if (voto == 1) cand1 = cand1+1;

if (voto == 2) cand2 = cand2+1;

if (voto == 3) cand3 = cand3+1;cand3 = cand3+1;

if (voto == 4) cand4 = cand4+1;

system("cls"); // limpar a telattal = ttal+1;}else{ printf("\nVOTO INVALIDO \n");system("PAUSE");system("cls"); }} printf("\n1 O Total de votos foi: %d",ttal); printf("\n1-Candidato LulaMolusco; %d, %.1f'%%%'dos votos",cand1, aux =

(cand1*100/ttal) );printf("\n2-Candidato MotoSerra;%d, %.1f'%%%'dos votos",cand2, aux = (cand2*100/ttal));printf("\n3-Candidato DilmaVez;%d, %.1f'%%%'dos votos",cand3, aux = (cand3*100/ttal));printf("\n4-Candidato Siqueirido;%d, %.1f'%%%'dos vostos",cand4, aux = (cand4*100/ttal));printf("\n");

system("PAUSE");}

Page 80: Introdução a linguagem c   karen lowhany

PROGRAMA DESPENCOL1- PARAFUSO R$ 05,00 A CAIXA

2- TROLHA R$ 15,65 AUNIDADE

3- PORCAS R$ 06,50 A CAIXA

4- PREGOS R$ 04,30 A CAIXA

5- MARTELO R$ 10,00 AUNIDADE

6- CERROTE R$ 30,00 AUNIDADE

EXERCÍCIO:

6- CERROTE R$ 30,00 AUNIDADE

7- CIMENTO R$ 99,99 O SACO

8- TIJOLO R$ 300,00 O MILHEIRO

VALOR “0” PRA ENCERRAR

O PROGRAMA DEVE MOSTRAR A QUANTIDADE DE

ITENS VENDIDOS E O VALOR TOTAL DE CADA ITEM E

O VALOR TOTAL DAVENDA.

Page 81: Introdução a linguagem c   karen lowhany

Múltiplas entradas com cin#include<iostream.h>

main()

{

printf("\nDigite as notas das 4 provas: ");

float p1,p2,p3,p4;

cin >>p1>>p2>>p3>>p4;cin >>p1>>p2>>p3>>p4;

float media=(p1+p2+p3+p4)/4;

printf("\nMedia: %.2f",media);

system("PAUSE");

}

Page 82: Introdução a linguagem c   karen lowhany

Tabela ASCII

Page 83: Introdução a linguagem c   karen lowhany

Código pra gerar a tabela ASCII#include <stdio.h>#include <stdlib.h>int main(){

char c = 32; do printf("[%d] %c\n", c, c);while (++c <= 126); system("Pause");

}

Page 84: Introdução a linguagem c   karen lowhany

Conversões de tipo e o operador de moldeSuponhamos que desejemos imprimir o valor

numérico de um caractere da tabela ASCII.Para isso, usaremos um novo operador

chamado operador de molde, que consiste em escrever o nome do tipo desejado e em seguida o valor ou a expressão a ser avaliada entre parênteses.seguida o valor ou a expressão a ser avaliada entre parênteses.

Char ch = ‘A’;Cout << int(ch); //Imprime 65

Page 85: Introdução a linguagem c   karen lowhany

As funções getche() e getch()

#include <stdlib.h>

#include <stdio.h>

#include <iostream.h>

#include <conio.h>

main()

{

char ch;

printf("\nPressione uma tecla ");

ch = getche();

printf("\nA tecla sucessora ASCII e: %d", char(ch));

printf("\n");

system("PAUSE");

}

Page 86: Introdução a linguagem c   karen lowhany

As funções getche() e getch()A função getche() retorna o caractere lido no

teclado.O valor retornado de uma função pode ser

chamado de valor da função ou resultado da função.

A expressãoA expressãoch=getche();

atribui o valor da função getche à variável ch.

Page 87: Introdução a linguagem c   karen lowhany

As funções getche() e getch()

A função getch() é similar à função getche(), exceto pelo fato de que o caractere digitado não é impresso no vídeo.

As duas necessitam da biblioteca As duas necessitam da biblioteca “conio.h”.

Page 88: Introdução a linguagem c   karen lowhany

Operadores de incremento e de decrementoA instruçãox=x+1;

é equivalente a++x;

que é equivalente aque é equivalente ax++;

Page 89: Introdução a linguagem c   karen lowhany

Operadores de incremento e de decrementon=5;x=++n;printf(“\nN= “<<n<<“ X= “<<x);

A saída seráN=6 X=6 N=6 X=6

Page 90: Introdução a linguagem c   karen lowhany

Operadores de incremento e de decremento

n=5;x=n++;cout<<“\nN= “<<n<<“ X= “<<x;

A saída seráN=6 X=5N=6 X=5

Page 91: Introdução a linguagem c   karen lowhany

Operadores de incremento e de decremento

x=x-1;é equivalente a--x;

que é equivalente ax--;x--;

Page 92: Introdução a linguagem c   karen lowhany

Operadores aritméticos de atribuição

i+=2; equivale a i=i+2;X*=y+1; equivale a x=x*(y+1)t/=2.5; equivale a t=t/2.5;P%=5; equivale a p=p%5;D-=3; equivale a d=d-3;D-=3; equivale a d=d-3;

Page 93: Introdução a linguagem c   karen lowhany

Operadores relacionais

> maior>= maior ou igual< menor<= menor ou igual== igual== igual!= diferente

Page 94: Introdução a linguagem c   karen lowhany

Programa exemplo

#include<iostream.h>main(){

int verdadeiro, falso;verdadeiro = (15<20);falso = (15==20);falso = (15==20);cout<<“\nVerdadeiro “<<verdadeiro;cout<<“\nFalso “<<falso;

}

Page 95: Introdução a linguagem c   karen lowhany

Operadores lógicos: && || !

C++ oferece três operadores lógicos. São eles:

&& lógico e|| lógico ou! Lógico não! Lógico não

Page 96: Introdução a linguagem c   karen lowhany

O operador condicional ternário: ?:

Sua sintaxe geral possui a seguinte construção:exp1 ? exp2 : exp3

A exp1 é avaliada primeiro. Se seu valor for diferente de zero (verdadeira) a exp2 é avaliada e seu resultado será o valor da expressão condicional com um todo.expressão condicional com um todo.

Se exp1 for zero, a exp3 é avaliada e será o valor da expressão condicional com um todo.

Page 97: Introdução a linguagem c   karen lowhany

O operador condicional ternário: ?:

Na expressão:max = (a>b) ? a : b

A variável que contém o maior valor numérico entre a e b será atribuída a max.max.

Page 98: Introdução a linguagem c   karen lowhany

Comandos de decisão

Os comandos de decisão permitem determinar qual é a ação a ser tomada com base no resultado de uma expressão condicional.

Page 99: Introdução a linguagem c   karen lowhany

O comando if

A instrução if consiste na palavra-chave if seguida de uma expressão de teste entre parênteses.

Se a expressão de teste for verdadeira, a instrução é executada; do contrário, instrução é executada; do contrário, nada é feito.

Page 100: Introdução a linguagem c   karen lowhany

O comando if

if (expressão de teste){Instrução;Instrução;}}

Page 101: Introdução a linguagem c   karen lowhany

O comando if-else

O comando if-else é uma expansão de um simples comando if.

O comando if permite que executemos algo somente se a sua expressão de teste for verdadeira, caso contrário teste for verdadeira, caso contrário nada é executado.

Page 102: Introdução a linguagem c   karen lowhany

O comando if-else

Suponhamos que você queira executar alguma coisa se a expressão de teste for verdadeira e outra coisa se a expressão de teste for falsa.

Neste caso, você deve usar o comando Neste caso, você deve usar o comando if-else.

Page 103: Introdução a linguagem c   karen lowhany

O comando if-elseif (expressão de teste){instrução;instrução;}else{instrução;instrução;}

Page 104: Introdução a linguagem c   karen lowhany

O comando if-else

if (expressão de teste 1){instrução;instrução;}else if (expressão de teste 2){instrução;instrução;}else{instrução;instrução;}

Page 105: Introdução a linguagem c   karen lowhany

Laços

O laço forGeralmente usado quando queremos repetir algo um número fixo de vezes.

Isto significa que utilizamos um laço for quando sabemos de antemão o número de vezes a repetir.vezes a repetir.

Page 106: Introdução a linguagem c   karen lowhany

Laços#include<iostream.h>#include<conio.h>

main(){int i;for(i=1;i<=10;i++){ cout<<i; // mostra o valor{ cout<<i; // mostra o valorgetch(); // pega a tecla_sleep(1000); // a espera

}system(“PAUSE”);}

Page 107: Introdução a linguagem c   karen lowhany

Laços#include<iostream.h>#include<conio.h>

main(){int i;for(i=10;i<=1;i--){ cout<<i; // mostra o valor{ cout<<i; // mostra o valorgetch(); // pega a tecla_sleep(1000); // a espera

}system(“PAUSE”);}

Page 108: Introdução a linguagem c   karen lowhany

EXERCÍCOFaça um programa que calcule o valor

fatorial de um número inteiro.

Page 109: Introdução a linguagem c   karen lowhany

EXERCÍCO2) Escreva um programa que apresente a

série de Fibonacci até o décimo quinto termo. A série de Fibonacci é formada pela seqüência: 1, 1, 2, 3, 5, 8, 13, 21, 34, ... .

Page 110: Introdução a linguagem c   karen lowhany

O laço while

A segunda estrutura de laço em C++ é o laço while.

À primeira vista, o laço while parece simples se comparado ao laço for; utiliza os mesmos elementos, mas eles utiliza os mesmos elementos, mas eles são distribuídos de maneira diferente no programa.

Page 111: Introdução a linguagem c   karen lowhany

O laço while

expressão de inicialização;while (expressão de teste){...expressão de incremento (passo);.}

Page 112: Introdução a linguagem c   karen lowhany

O laço do-while

A terceira e última estrutura de laço em C++ é o laço do-while.

Este laço é bastante similar ao laço while e é utilizado em situações em que é necessário executar o corpo do laço necessário executar o corpo do laço uma primeira vez e depois avaliar a expressão de teste e criar um ciclo repetido.

Page 113: Introdução a linguagem c   karen lowhany

O laço do-while

do{instrução;instrução;} while (teste);} while (teste);

Page 114: Introdução a linguagem c   karen lowhany

MATRIZES

Estruturas de Dados Homogêneas Estruturas de Dados Homogêneas

Multidimensionais –

Matrizes

Page 115: Introdução a linguagem c   karen lowhany

Matrizes em Linguagem “C”• Matrizes são Estruturas de Dados Homegêneas Multidimensionais

• Necessitam de dois (ou mais) índices de acesso.

• Declaração:

tipo nomedamatriz[DimMax_x][DimMax_y];

Onde:

– tipo:um dos tipos primitivos de dados em C (char, int, float, double)

– nomedamatriz: segue as mesmas regras das variáveis básicas – nomedamatriz: segue as mesmas regras das variáveis básicas

– DimMax_x, DimMax_y: define o tamanho da área de armazenamento -

pode ser uma expressão constante inteira

Page 116: Introdução a linguagem c   karen lowhany

Matrizes em Linguagem “C”

#include <stdio.h>

#include <stdlib.h>

void main()

{

float matriz [2][2];

float media, quant;

matriz[0][0] = 9.0;

matriz[0][1] = 8.0;matriz[0][1] = 8.0;

matriz[1][0] = 7.0;

matriz[1][1] = 7.0;

quant = matriz[0][0] + matriz[0][1]

+ matriz[1][0] + matriz[1][1];

media = quant / 4.0;

printf (“ A média dos 4 números é: %f.”, media);

system (“PAUSE”);

}

Page 117: Introdução a linguagem c   karen lowhany

Matrizes em Linguagem “C”

Exemplos:

int main()

{

float parc_aluno[2];

float notas_alunos[5][2];

char nome[40];

char nomes_turma[5][40];char nomes_turma[5][40];

return 0;

}

(Importante: Indexação no estilo [Linha][Coluna])

Page 118: Introdução a linguagem c   karen lowhany

Matrizes em Linguagem “C”#include <stdio.h>

#include <stdlib.h>

void main ()

{

float matriz [2][2];

float media, quant;

printf ( “Digite o 1o número:” );

scanf ( “%f”, &matriz [0][0] );

printf ( “Digite o 2o número:” );printf ( “Digite o 2o número:” );

scanf ( “%f”, &matriz [0][1] );

printf ( “Digite o 3o número:” );

scanf ( “%f”, &matriz [1][0] );

printf ( “Digite o 4o número:” );

scanf ( “%f”, &matriz[1][1] );

quant = matriz[0][0] + matriz[0][1] + matriz[1][0] + matriz[1][1];

media = quant / 4.0;

printf(“ A média dos 4 números é: %f.”, media);

system (“pause”);

}

Page 119: Introdução a linguagem c   karen lowhany

Matrizes em Linguagem “C”#include <stdio.h>

#include <stdlib.h>

void main ()

{

float matriz [2][4];

float media[2], soma;

int cont1, cont2;

for ( cont1 = 0; cont1 < 2; cont1 = cont1 + 1 )

{

soma = 0.0f;

for ( cont2 = 0; cont2 < 4; cont2 = cont2 + 1 )for ( cont2 = 0; cont2 < 4; cont2 = cont2 + 1 )

{

printf ( “ Digite a nota posição %i, %i da matriz: ”, cont1, cont2 );

scanf ( “%f”, &matriz[cont1][cont2] );

soma = soma + matriz[cont1][cont2] ;

}

media[cont1] = quant / 4.0;

printf ( “ A média dos números da linha %d da matriz é: %f.”, cont1, media[cont1]);

}

printf(“\nE a média geral entre todos os números é: %2.2f\n”, (media[0]+media[1])/2.0f);

system (“pause”);

}

Page 120: Introdução a linguagem c   karen lowhany

Matrizes em Linguagem “C”

Exercíciosa) Uma matriz M pode ser transposta em uma matriz N onde o número de linhas/colunas da primeira passa

a ser o número de colunas/linhas da segunda. Faça um programa que:

- Leia uma matriz M (o usuário deve fornecer a quantidade de linhas e a quantidade de colunas que

não deverão exceder 50 linhas e 50 colunas).

- Calcule a transposta N da matriz M.

- Imprima a transposta calculada.

b) Elabore um programa que multiplique duas Matrizes M e N (10x10) fornecidas pelo usuário. O programa

deve:

- Ler as matrizes M e N.

- Calcular a multiplicação e armazenar na matriz Mult.

- Imprimir o resultado.- Imprimir o resultado.

c) Elabore um programa que manipule os dados para uma sala de 40 alunos. O programa deve receber

como entrada (via leitura de teclado):

- Os nomes dos alunos (máximo 50 caracteres).

- As duas notas parciais.

O programa deve calcular e imprimir, numa mesma linha, para cada aluno:

- O nome, a média final e a freqüência.

E também deve apresentar:

- A maior média da turma, e a menor média da turma.

- A quantidade de alunos aprovados, reprovados e em exame.

- Uma listagem com o nome dos alunos que irão para a final.

Page 121: Introdução a linguagem c   karen lowhany

#include<stdio.h>

main()

{

int vet1[5]={1,2,3,4,5}; /*declaração e inicialização do vetor vet1*/ int vet2[5]={6,1,2,2,5}; /*declaração e inicialização do vetor vet2*/ int vetSoma[5];

/*declaração do vetor vetSoma que vai guardar o resutado da soma dos dois vetores(vet1 e vet2).*/

int x;

printf("Este programa soma os dois vetores abaixo:\n");

printf("vet1={1,2,3,4,5}\n"); printf("vet1={1,2,3,4,5}\n");

printf("vet2={6,1,2,2,5}\n");

printf("\n");

printf("vetor resultante da soma:\n");

for(x=0; x<5; x++)

{

vetSoma[x]=vet1[x]+vet2[x]; /*soma os valores*/

printf("vetSoma[%d]:%d\n",x,vetSoma[x]); /*exibe na tela*/

} /*fim do for*/

} /*fim do programa*/

Page 122: Introdução a linguagem c   karen lowhany

main()

{

int mat[2][2];

float det; int x,y;

printf("Este programa calcula a determinante de uma matriz quadrada de ordem 2");

printf("\n\nEntre com os valores a da matriz:\n");

for(x=0;x<2;x++)

{

for(y=0;y<2;y++)

{ {

printf("mat[%d][%d]=",x+1,y+1);

scanf("%d",&mat[x][y]);

} /*fim do for*/

} /*fim do for*/

det=mat[0][0]*mat[1][1]-mat[1][0]*mat[0][1]; /*formula para calcular a determinante */

printf("Determinante da matriz = %f\n",det);

} /*fim do programa*/

Page 123: Introdução a linguagem c   karen lowhany

Linguagem C++

Vetores, Matrizes e Funções

Page 124: Introdução a linguagem c   karen lowhany

Revisão de Funções• O que são “Funções”? (ou subprogramas ou subrotinas)

– São trechos de código fonte agrupados sob um nome, que

podem ser chamados sempre que for necessário executar uma

determinada ação programada neste trecho;

• Como usar funções?

– Atribui-se um nome à uma seqüência de comandos, e faz-se

referência a este nome nos vários lugares do programa onde a

seqüência em questão deveria ser repetida.

Page 125: Introdução a linguagem c   karen lowhany

Revisão de Funções• Por que usar funções?

– Evita escrita repetida de código (uma certa seqüência de comandos deve ser repetida

em vários lugares de um programa).

• Economiza o tempo gasto com o trabalho de copiar estas seqüências;

• Evitar a necessidade de mudar em múltiplos lugares caso deseje alterar o seu

funcionamento;

– Dividir grandes tarefas de computação em tarefas menores:

• Facilita o gerenciamento de grandes sistemas e • Facilita o gerenciamento de grandes sistemas e

• Aumenta a confiabilidade dos mesmos.

• Resumo: Principais motivações para uso das funções!

– Evitar repetição de código

– Modularização

Page 126: Introdução a linguagem c   karen lowhany

Revisão de Vetores• Vetores são Estruturas de Dados Homegêneas, isto é, capazes de armazenar

uma quantidade pré-definida de valores do mesmo tipo

• Necessitam de apenas um índice de acesso.

• Declaração:

tipo nomedovetor[DimMax];

Onde:

– tipo:um dos tipos primitivos de dados em C (char, int, float, double)– tipo:um dos tipos primitivos de dados em C (char, int, float, double)

– nomedovetor: segue as mesmas regras das variáveis básicas

– DimMax: define o número máximo de elementos do vetor

pode ser uma expressão constante inteira

Page 127: Introdução a linguagem c   karen lowhany

Revisão de Vetores#include <stdio.h>

#include <stdlib.h>

#define NUM_ALUNOS 3

int main( )

{

float notas [NUM_ALUNOS];

float media_turma = 0.0;

int i;

for ( i = 0; i < NUM_ALUNOS; i++ )

{

printf ("Digite a nota do %d o. aluno: ", i+1);

scanf ("%f", &notas[i]);

}

for ( i = 0; i < NUM_ALUNOS; i++ )

{

media_turma += notas[i];

}

media_turma = media_turma / NUM_ALUNOS ;

printf ("A media da turma eh %.2f \n", media_turma);

system ("Pause");

return 0;

}

Page 128: Introdução a linguagem c   karen lowhany

Vetores e Funções

#include <stdio.h>

#include <stdlib.h>

#define NUM_ALUNOS 3

float media ( float notas[], int n ){

int i = 0;

int main( )

{

float notas [NUM_ALUNOS];

float media_turma;

int i;

for ( i = 0; i < NUM_ALUNOS; i++ )

{int i = 0;

float m = 0.0;

for ( i = 0; i < n; i++ )

{

m = m + notas[i] ;

}

m = m / n;

return m;

}

{

printf ("Digite a nota do %d o. aluno: ", i+1);

scanf ("%f", &notas[i]);

}

media_turma = media ( notas, NUM_ALUNOS );

printf ("A media da turma eh %.2f \n", media_turma);

system ("Pause");

return 0;

}

Page 129: Introdução a linguagem c   karen lowhany

Vetores e Funções

#include <stdio.h>

#include <stdlib.h>

#define NUM_ALUNOS 3

float media ( float notas[], int n )

{

• E para calcular o número de

alunos com notas acima da

média?

• A função de cálculo de média

pode ser a mesma já utilizada.....{

int i = 0;

float m = 0.0;

for ( i = 0; i < n; i++ )

{

m = m + notas[i] ;

}

m = m / n;

return m;

}

pode ser a mesma já utilizada.....

• E agora criamos a função de

cálculo da quantidade de alunos

acima da média!

Page 130: Introdução a linguagem c   karen lowhany

Vetores e Funções

int conta_alunos_acima_da_ media ( float notas[], int n, float media){

int i, conta = 0;

for ( i = 0; i < n; i++ )

{

if (notas[i] > media)

{

conta += 1;conta += 1;

}

}

return conta;

}

Page 131: Introdução a linguagem c   karen lowhany

Vetores e Funções

int main( )

{

float notas [NUM_ALUNOS];

float media_turma;

int i, melhores_alunos;

for ( i = 0; i < NUM_ALUNOS; i++ )

{

printf ("Digite a nota do %d o. aluno: ", i+1);printf ("Digite a nota do %d o. aluno: ", i+1);

scanf ("%f", &notas[i]);

}

media_turma = media ( notas, NUM_ALUNOS );

printf ("A media da turma eh %.2f \n", media_turma);

melhores_alunos=conta_alunos_acima_da_ media(notas, NUM_ALUNOS, media_turma);

printf (“E o numero de alunos com nota acima da media foi: %d .\n”, melhores_alunos);

system ("Pause");

return 0;

}

Page 132: Introdução a linguagem c   karen lowhany

Vetores e Funções

• Desafio 1: Alterar o programa anterior para:

– Receber duas notas bimestrais de cada aluno;

– Verificar se cada nota está entre 0.0 e 10.0;

– Calcular a média de cada aluno (e armazenar o valor em um vetor);

– Modificar o programa para apresentar os seguintes resultados: – Modificar o programa para apresentar os seguintes resultados:

• média geral da turma;

• número de alunos com média individual acima da média da

turma.

Page 133: Introdução a linguagem c   karen lowhany

Matrizes e Funções

• Será que é possível “passar matrizes” por parâmetro?

• Se sim, como?

Page 134: Introdução a linguagem c   karen lowhany

Matrizes e Funções#include <stdio.h>

#include <stdlib.h>

#define NUM_ALUNOS 3

int main()

{

float notas [NUM_ALUNOS][2], media_turma;

int i;

for ( i = 0; i < NUM_ALUNOS; i++ )

{

printf ("Digite a 1a. nota do %d o. aluno \n: ", i+1);

scanf ("%f", &notas[i][0]);scanf ("%f", &notas[i][0]);

printf ("Digite a 2a. nota do %d o. aluno \n: ", i+1);

scanf ("%f", &notas[i][1]);

}

media_turma = media_geral ( notas, NUM_ALUNOS );

printf ( "A media da turma eh %.2f \n", media_turma);

system ("Pause");

return 0;

}

Page 135: Introdução a linguagem c   karen lowhany

Matrizes e Funções

float media_geral ( float notas[][2], int n )

{

int i = 0;

float m = 0.0;

float notaaluno = 0.0;

for ( i = 0; i < n; i++ )

{{

notaaluno = ( notas[i][0] + notas[i][1] )/2;

m = m + notaaluno;

}

m = m / n;

return m;

}

Page 136: Introdução a linguagem c   karen lowhany

Exercício Complementar:

• Elabore um programa que manipule os dados para uma sala de 40 alunos.

• O programa deve receber como entrada (via leitura de teclado):

- Os nomes dos alunos (máximo 50 caracteres).

- As duas notas parciais.

– O programa deve calcular e imprimir, numa mesma linha, para cada aluno:– O programa deve calcular e imprimir, numa mesma linha, para cada aluno:

- O nome e a média final.

– E também deve apresentar:

- A maior média da turma, e a menor média da turma.

- A quantidade de alunos aprovados, reprovados e em exame.

- Uma listagem com o nome dos alunos que irão para a final.

Page 137: Introdução a linguagem c   karen lowhany

LINGUAGEM DE PROGRAMAÇÃO

LINGUAGEM C

Funções, Matrizes, Vetores e StringsMatrizes, Vetores e Strings

2010/1

Page 138: Introdução a linguagem c   karen lowhany

Funções em C : Exemplo#include <stdio.h>

float area(float r); /* declaracao do prototipo da funcao */

float potencia(float num, int pot); /* declaracao do prototipo da funcao */

float area(float r) /* Funcao que retorna a area da esfera*/

{ return (4*3.14159*potencia(r,2)); /* retorna a area em um tipo float */ }

float potencia(float num, int pot) /*Funcao que Eleva a uma potencia positiva um dado */

{

float result = 0; /* declaracao de var. local */

int i = 0;

if(pot < 0)

return 0; /* Indica que houve erro */

if(pot == 0)if(pot == 0)

return 1;

result = num;

for(i = 1; i < pot; i++)

result *= num;

return result;

}

void main(void)

{

char a;

float raio = 0;

printf("Digite o raio da esfera: ");

scanf("%f", &raio);

printf("A area da esfera e' %.2f", area(raio));

a=getchar();

a=getchar();

}

Page 139: Introdução a linguagem c   karen lowhany

Funções recursivas em C

• Em C, todos os argumentos de funções são passados “por valor”.

• A função chamada recebe uma cópia dos valores dos argumentos e cria outras variáveis temporárias para armazenar estes valores.

• A função chamada não pode alterar o valor de uma variável da função que a • A função chamada não pode alterar o valor de uma variável da função que a chamou; ela só pode alterar sua cópia temporária.

long int Fatorial(long int i){if(i > 1)

return i*Fatorial(i-1);else

return 1;}

� C permite a criação de funções recursivas, isto é, uma função que possui dentro do seu corpo de instruções uma chamada a si própria.

No exemplo, cada chamada recursiva da função “fatorial” coloca mais uma variável i do tipo long int na pilha (stack).

Page 140: Introdução a linguagem c   karen lowhany

Funções recursivas em C: Exemplo

#include <ansi_c.h>#include <stdio.h>long Fatorial(long n);

long Fatorial(long N){if (N==0)

return(1);elseelse

return(N*Fatorial(N-1));}

void main(void){

int num;long result;printf("Digite o número para calcular o fatorial");scanf("%d", &num);result=Fatorial(num);printf("Resultado:%ld",result); getchar();getchar();

}

Page 141: Introdução a linguagem c   karen lowhany

Matrizes Unidimensionais: Vetores

• Vetores: São tipos de dados estruturados mais conhecidos

como arrays. Correspondem a conjuntos de elementos de

um mesmo tipo representados por um único nome.

• Vetor Cada elemento do array

pode ser referenciado através de índices. V[0] = 4

V[1] = 7 pode ser referenciado através de índices. V[1] = 7

V[4] = 3Declaração<Tipo><Nome_da_Var>[<tamanho>];

Ex: int v[30]; float n[10];

Atribuição v[i] = 10;

v[2] = 12 + x;

v[i+2] = 14;

Leitura for (i=0; i<30; i++)

{ printf("\n\nElemento %d: ",i+1);

scanf(“%d”,&v[i]);

}

Impressão printf("\n\nVetor: ");

for (i=0; i<30; i++)

printf(" %d ",v[i]);

Page 142: Introdução a linguagem c   karen lowhany

Declarando e inicializando vetores

Inicializacão:

float x[7]={-1.1,0.2,33.0,4.4,5.05,0.0,7.7};

x[0] = -1.1

x[1] = 0.2Inicializador: seqüência de valores

separados por virgula.x[1] = 0.2

x[2] = 33.0

x[3] = 4.4

x[4] = 5.05

x[5] = 0.0

x[6] = 7.7

separados por virgula.

O número de bytes para armazenar um

vetor é igual ao tamanho do tipo base

(short = 2 bytes, double = 8 bytes, …)

vezes o número de elementos.

Para armazenar 100 elementos do tipo

float são necessários 100 * 32 = 3200

bits ou 400 bytes.

Page 143: Introdução a linguagem c   karen lowhany

Vetores: Exemplo

Diretiva de pré-processamento usada

para definir constantes simbólicas.

#include <ansi_c.h>#include <stdio.h>#define N 5

void main(void){int i=0, soma=0;int a[N]; // aloca cinco espacos de memoriaint a[N]; // aloca cinco espacos de memoria

for (i=0; i<N; i++) // armazena os valores nos espacos de memoriaa[i]=7+i*i;

for (i=0; i<N; i++) // Le os valores nos espacos de memoriaprintf("a[%d]=%d ", i, a[i]);

for (i=0; i<N; i++)soma+=a[i];printf("\nsoma=%d\n", soma);

getchar();}

Page 144: Introdução a linguagem c   karen lowhany

Matrizes Unidimensionais: Strings

• Em C, uma string é uma matriz unidimensional (vetor) de

caracteres e terminada por um caracter nulo ‘\0’.

• Strings são usadas para armazenar e manipular textos, palavras ou sentenças.

Ao lado temos as

Funções suportadas

em C para a

manipulação de

Strings.

Elas usam o

cabeçalho padrão

string.h

Page 145: Introdução a linguagem c   karen lowhany

Strings: exemplo

#include <ansi_c.h>

#include <stdio.h>

#include <string.h>

void main(void)

{

char s1[80]; char s2[80];

gets(s1); gets(s2);

printf("Comprimentos: %d %d \n", strlen(s1), strlen(s2));

if (!strcmp(s1,s2)) printf("As strings sao iguais \n");

strcat(s1,s2);

printf("%s\n", s1);

strcpy(s1 "Isso e um teste\n");

printf("s1");

if (strchar("alo",'o'))

printf("o esta em alo\n");

if (strstr("ola aqui","ola"))

printf("\ola encontrado");

getchar();

getchar();

}

Page 146: Introdução a linguagem c   karen lowhany

Registros

• São conjuntos de dados logicamente relacionados, mas de tipos diferentes (inteiro, real, char, etc.).

– Exemplo: Numa dada aplicação, podem-se ter os seguintes dados sobre os alunos de uma turma:

Matricula, Nota1

Nota2 , Média

• Cada conjunto de informações do aluno pode ser referenciado por um mesmo nome, por exemplo, ALUNO. Tais estruturas são conhecidas como registros, e aos elementos do registro dá-se o nome de campos. Declaraçãotypedef struct { variaveis }nome_do_tipo;

TAlunos aluno;

Exemplo:

typedef struct { int mat; float n1, n2, med; }TAlunos;

Atribuição:

Nome-do-registro.campo = valor; aluno.n1 = 5.0;

scanf("%d", &aluno.mat);

Page 147: Introdução a linguagem c   karen lowhany

Vetor de Registros

• Podem-se ter conjunto de registros referenciáveis por um

mesmo nome e individualizados por índices, através da

utilização de um vetor de registros.Exemplo: Atribuição:

typedef struct { int mat;

float n1, n2, med;

}TAlunos;

TAlunos aluno[30];

nome-do-vetor[indice].campo =

valor;

aluno[3].n1 = 5.0;

scanf("%d", &aluno[i].mat);

Page 148: Introdução a linguagem c   karen lowhany

Vetor de Registros: Exemplo#include <ansi_c.h>#include <stdio.h>void main(void){ {

typedef struct {int mat,serie,irmao,mens;}Tescola;Tescola escola[30];

int i, qa; qa=2;for (i=0; i<qa; i++)

{ printf("\n\nDados do Aluno %d\n\n",i+1);printf("\n\tNumero de Matricula do Aluno: ");printf("\n\tNumero de Matricula do Aluno: ");scanf("%d",&escola[i].mat);printf("\n\tSerie (1-4): ");scanf("%d",&escola[i].serie);printf("\n\tTem irmao na escola (1-sim, 2-nao)? ");scanf("%d",&escola[i].irmao);switch(escola[i].serie)

{case 1: escola[i].mens = 110; break;case 2: escola[i].mens = 130; break;case 3: escola[i].mens = 160; break;case 4: escola[i].mens = 170; break; }

if (escola[i].irmao == 1)escola[i].mens = escola[i].mens*0.8;printf("%d",escola[i].mens);}

} getchar();getchar();

Page 149: Introdução a linguagem c   karen lowhany

Matrizes Bidimensionais:

• A linguagem C suporta matrizes multidimensionais;Para declarar uma matriz

bidimensional de inteiros

d com dimensões 10x20,

temos:

Exemplo: carrega a matriz num de

1 a 12 e escreve linha por linha.#include <ansi_c.h>#include <stdio.h>

void main(void)

Para acessar o elemento

1,2 da matriz d, usamos:

O número de bytes

necessários para

armazenar uma matriz

bidimensional é dado por:

void main(void){ int t, i, num[3][4];

// Salve os numeros na matriz numfor (t=0; t<3;++t)

for (i=0; i<4;++i)num[t][i]=(t*4)+i+1;

// Leia e escreva os numeros da matriz num for (t=0; t<3;++t)

{printf("\t"); printf("\n");for (i=0; i<4;++i)printf("%3d\t", num[t][i]);}printf("\n");

getchar(); }

Page 150: Introdução a linguagem c   karen lowhany

Matrizes de Strings

• Para criar uma matriz de strings usa-se uma matriz

bidimensional de caracteres.

• O tamanho do índice esquerdo indica o número de strings e

o tamanho do índice direito indica o comprimento máximo de

cada string.cada string.

• O código seguinte declara uma matriz de 30 strings onde

cada uma tem um comprimento máximo de 79 caracteres:

• Para acessar uma string, especifica-se no comando de gets()

apenas o índice esquerdo:

Page 151: Introdução a linguagem c   karen lowhany

Matrizes de Strings : Exemplo

� O programa ao lado

usa a matriz de strings

como base para um

pequeno editor de

textos.

#include <ansi_c.h>#include <stdio.h>#define MAX 100#define LEN 100char texto[MAX][LEN];//Um editor de textos muito simpls

void main(void){

� O programa recebe

linhas de texto até que

uma linha em branco

seja inserida. Em

seguida ele mostra cada

linha com um caracter

por vez.

{register int t, i, j;printf("Digite uma linha vazia para sair. \n"); for (t=0; t<MAX; t++)

{printf("%d", t);gets(texto[t]);if(!*texto[t]) break; //sai com linha em branco

}for (i=0; i<t; i++){

for (j=0; texto[i][j]; i++) putchar(texto[i][j]);putchar('\n');

}getchar();

}

Page 152: Introdução a linguagem c   karen lowhany

Exercícios(1)

1. Ler um conjunto de números e imprimi-los na ordem inversa da leitura. A quantidade de números também será lida e será no máximo 20.

2. Ler o tamanho e os elementos de dois vetores e em seguida, caso os vetores tenham o mesmo tamanho, gere e imprima um vetor SOMA, onde seus elementos serão formados pela soma dos elementos de mesmos índices dos dois vetores lidos

3. Ler um vetor de números e imprimir os números das posições PARES e em seguida os números das posições ÍMPARES.

4. Ler dois vetores e caso tenham tamanhos iguais armazene seus elementos alternadamente em um terceiro vetor.

4. Ler dois vetores e caso tenham tamanhos iguais armazene seus elementos alternadamente em um terceiro vetor.

5. Ler um vetor de números inteiros e imprimir as posições do maior e do menor elemento do vetor. Assuma que não existem elementos repetidos no vetor.

6. Ler um conjunto de matrícula e notas dos alunos de uma turma e imprima a matricula dos alunos de tiveram nota acima da média das notas da turma.

10. Ler dois vetores de números e gerar um terceiro vetor formado pela INTERSECÇÃO dos dois vetores lidos.

11. Ler dois vetores de números e gerar um terceiro vetor formado pela DIFERENÇA dos dois vetores lidos.

12. Ler dois vetores de números e gerar um terceiro vetor formado pela UNIÃO dos dois vetores lidos.

13. Ler um vetor e gerar um segundo vetor com os elementos do vetor lido menos os elementos repetidos. Ex : VetorLido = 5 1 2 7 5 3 7 5 9 3; VetorGerado = 5 1 2 7 3 9

14. Ler um vetor de números e imprimir os números que se repetem nesse vetor.

Page 153: Introdução a linguagem c   karen lowhany

Exercícios(2)

15. Escreva uma função que indique quantas vezes aparece um determinado caractere em uma dada string.

16. Escreva uma função que localize um caractere em uma string, substituindo-a por outro.

17. Escreva uma função que insira um determinado caractere em uma determinada posição de uma string.

18. Escreva uma função que retire todos os caracteres brancos, tabulações ou nova linha [enter] de uma dada string.

18. Escreva uma função que retire todos os caracteres brancos, tabulações ou nova linha [enter] de uma dada string.

19. Escreva um programa que converta todas os caracteres minúsculos de uma string para o correspondente caractere maiúsculo.

20. Escreva um programa para criar uma tabela com os seus horários ocupados e compromissos na semana. Armazene o valor de cada compromisso através de uma tabela de strings. Inicialize a tabela com valor 0, e solicite ao usuário que forneça o seu horário. Por fim, apresente na tela o resultado obtido.

Page 154: Introdução a linguagem c   karen lowhany

Exercícios (3)

21. Use uma matriz bidimensional para armazenar as notas de cada aluno. O professor tem três turmas e um máximo de 30 alunos por turma. Use a sugestão:

22. Crie um programa para calcular a matriz transposta de uma dada matriz. Aloque uma memória para uma matriz bidimensional com dimensão máxima de 10x10. Crie uma função para inicializar a matriz com zeros. Depois questione o usuário para sob a dimensão da matriz que ele deseja calcular a transposta, considerando a dimensão máxima permitida. Em seguida, adquira os valores dos termos que compõem a matriz, solicitando ao usuário que forneça estes dados. Por fim, calcule a transporta da matriz e escreva na tela o resultado final da matriz.

Page 155: Introdução a linguagem c   karen lowhany

Exercícios (4)

23. Fazer um programa para a companhia de energia elétrica da cidade. Para cada consumidor são fornecidos os seguintes dados: matrícula do consumidor, nome, tipo do consumidor (1-comercial, 2-industrial, 3-residencial), quantidade de KWh consumidos no mês. O programa irácalcular o valor da conta. O programa irá ler uma quantidade de consumidores e armazenará os dados dos consumidores em um vetor de registro. Imprimir um relatório contendo os dados do consumidor e o valor que o mesmo deve pagar e no final, imprimir o relatório registro. Imprimir um relat rio contendo os dados do consumidor e o valor que o mesmo deve pagar e no final, imprimir o relatório estatístico:

– Total a ser arrecadado pela empresa de energia

– Media de consumo das industrias

– Total de consumo das residências

– Quantidade de estabelecimentos comerciais

OBS: Valor de 1 KWh

– Residência: R$ 5,00

– Comércio: R$ 3,00

– Indústria: R$ 2,00