Introdução à Linguagem C. Introdução à Linguagem C. Introdução à Linguagem C C++ Prof. Yandre Maldonado e Gomes da Costa

Documentos relacionados
Introdução à Linguagem C

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

Algoritmos e Programação

Programação Estruturada

A Linguagem C. A forma de um programa em C

3. Linguagem de Programação C

Linguagem C Princípios Básicos (parte 1)

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Linguagem C: Introdução

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Linguagens de Programação I

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

3. Linguagem de Programação C

Algoritmos II prof. Daniel Oliveira

Linguagem de Programação. Thiago Leite Francisco Barretto

Revisão C++ - Parte 1

Introdução à Linguagem C

Introdução à Linguagem C

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores VARIÁVEIS E TIPOS DE DADOS

Capítulo 2 Operadores. A função scanf()

Tópicos em C. Eliade F. Lima

Conhecendo a Linguagem de Programação C

Linguagem de Programação C

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Linguagem C: Variáveis e Operadores. Prof. Leonardo Barreto Campos 1

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

Variáveis, Tipos de Dados e Operadores

Introdução Linguagem C. UDESC - Prof. Juliano Maia 1

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Linguagem C - Introdu ção

Módulo 1. Introdução. AEDS I C++ (Rone Ilídio)

Linguagens de Programação

Prof. Marcelo Machado Cunha Faculdade Pio Décimo

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Linguagem C. Prof.ª Márcia Jani Cícero

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C

Linguagem de Programação C. Prof. Fabrício Olivetti de França

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Características da Linguagem C

Linguagem de Programação C

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

Linguagem C Controle do Fluxo de Execução. Lógica de Programação

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Revisão Linguagem C Parte 1

A linguagem C (visão histórica)

4. Estruturas Fundamentais de Programação em C

Introdução à Programação. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Utilização da Linguagem C

Introdução à Programação

Algoritmos: Conceitos Fundamentais

Curso de C. Declaração de Variáveis 18/3/ :48 1

Introdução à Ciência da Computação

Linguagem C para Microcontroladores

LÓGICA DE PROGRAMAÇÃO. PROFª. M.Sc. JULIANA H Q BENACCHIO

Programação I A Linguagem C. Prof. Carlos Alberto

Programação científica C++

Aula 03 - Linguagem C

Puca Huachi Vaz Penna

Programação de Computadores II

PROGRAMAÇÃO ESTRUTURADA E ORIENTADA A OBJETOS

RESUMO DE CONCEITOS BÁSICOS DE C

Slides trabalhados durante a quinta aula

Engenharia Elétrica AAM. Professor: Marco Shawn Meireles Machado

Introdução à Computação MAC0110

Variáveis primitivas e Controle de fluxo

Parte 1. Programação (linguagem C) Introdução Geral

Olimpíadas de Informática

INTRODUÇÃO A LINGUAGEM C

Estrutura do programa

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

Introdução a Programação na Linguagem C.

Programação Aplicada à Engenharia

Declarações. C diferencia letras maiúsculas de minúsculas! int n, N; n é diferente de N!

Olimpíadas de Informática Aulas preparatórias Introdução a Programação em C.

Sistemas Operacionais e Introdução à Programação. Programação com linguagem C

Cláudio C. Rodrigues Faculdade da Computação - UFU. Faculdade da Computação - UFU 1

Aula 03: Introdução a C

Introdução à Programação C. Introdução à Ciência da Computação I Prof. Jó Ueyama

SSC 0301 IC para Engenharia Ambiental

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

Princípios de Desenvolvimento de Algoritmos MAC122

Introdução à Programação Estruturada Parte 3. Material da Prof. Ana Eliza

Introdução à Computação

Computação Eletrônica. Tipos de dados, constantes, variáveis, operadores e expressões. Prof: Luciano Barbosa

Introdução à Linguagem de Programação C: Variáveis, Constantes, Expressões, Atribuição, Tipos de dados, Entrada e Saída de Dados

Programação: Vetores

Apostila de Linguagem C (Versão Incompleta)

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Programação Orientada a Objetos II Java Segunda aula. Prof. Rogério Albuquerque de Almeida

CIT Aula 02 Variáveis e Estruturas de desvio condicional. Autor: Max Rodrigues Marques Carga Horária: 2 h 22/07/15 1

Linguagem C Variáveis, Tipos de Dados, Comandos e Estrutura Linear

Transcrição:

Prof. Yandre Maldonado - 1 Prof. Yandre Maldonado e Gomes da Costa Prof. Yandre Maldonado - 2 Linguagem C: Desenvolvida por Dennis Ritchie nos laboratórios da AT&T Bell (EUA) no início dos anos 70; Algol Algol (1960 (1960 Europa) Europa) BCPL BCPL (Inglaterra) (Inglaterra) B (1970 (1970 EUA) EUA) C (1972 (1972 EUA) EUA) C é uma das linguagens maior aceitação: Portabilida (Compiladores disponíveis para PC s, Mainframes, etc.) Muitos compiladores C produzem código bastante otimizado; Reúne tanto características alto nível quanto baixo nível (muitas vezes chamada nível médio); Em 1983 foi criado o comitê ANSI-C; Prof. Yandre Maldonado - 3 C vs. C++ C C++ Linguagem C: linguagem programação imperativa estruturada; Linguagem C++: Linguagem Orientada a Objetos; Formadas pela linguagem C adicionada um conjunto instruções voltados à OO; Quem sabe programar em C conhece a maior parte C++; 1

Prof. Yandre Maldonado - 4 Turbo C vs. Turbo Pascal Termos básicos similares; Algumas funções semelhantes; C tem maior controle direto sobre o computador; O C possui fraca verificação erros; A linguagem C é case sensitive ; C é a linguagem um programador Herbert Schildt Prof. Yandre Maldonado - 5 A linguagem C é utilizada na criação diversos tipos aplicação, tais como: Sistemas Operacionais; Processadores Texto; Planilhas Eletrônicas; Sistemas Gerenciadores BD; Processadores Gráficos; Problemas Engenharia; Compiladores; C é uma linguagem versátil Prof. Yandre Maldonado - 6 C: linguagem nível médio; C Alto nível: --Estruturada; --Modular; --Portátil; Baixo nível: --Linguagem máquina; --Bits e bytes; --Enreços memória; 2

Prof. Yandre Maldonado - 7 Primeiros passos na Linguagem C: C é case sensitive: Po-se clarar quatro variáveis diferentes com os nomes Soma, soma, SOMA e SoMa, embora não seja recomendável na maioria das vezes; Todas as palavras reservadas da linguagem C vem ser scritas em letra minúscula, assim temos: for : palavra reservada que rotula a estrutura repetição para ; if : palavra reservada que rotula a estrutura seleção se ; For : poria ser um nome variável; If : poria ser um nome variável; Prof. Yandre Maldonado - 8 Estrutura básica um programa em C: Todo programa em C possui no mínimo uma função; A função é obrigatória e é a primeira a ser executada. É a função principal, o ponto partida do programa que será criado; Por isso, a noção função e programa freqüentemente se confunm quando se programa em linguagem C; Prof. Yandre Maldonado - 9 Forma geral um programa em C: inclusão arquivos cabeçalho claração variáveis globais main () claração da função principal (obrigatória). Os parênteses indicam que trata-se uma função toda função começa com o símbolo, equivale ao início (begin) um bloco instruções claração variáveis locais... comandos;... toda função termina com o símbolo, equivale ao fim (end) um bloco instruções As instruções scritas no programa terminam sempre com ;, como na linguagem Pascal. 3

Prof. Yandre Maldonado - 10 O menor programa possível em C seria: main () É um programa vazio, que não contém instruções para executar; Formatação dos programas: é livre, mas convém manter a legibilida; main main () () main main () () Bons exemplos main main (( )) main main () () Maus exemplos Prof. Yandre Maldonado - 11 auto do goto short union Comentários: pom ser incluídos em qualquer parte do programa. Se ocupar apenas uma linha, basta que a mesma seja iniciada com // ; Se ocupar mais uma linha, o comentário ve iniciar com o símbolo /* e terminar com o símbolo */ ; Palavras reservadas da Linguagem C: break double if signed unsigned case else int sizeof void char enum long static volatile const extern main struct while continue float register switch fault for return typef Prof. Yandre Maldonado - 12 Exercícios: Por que po-se dizer que C é uma linguagem nível médio? Fale sobre características positivas e negativas da linguagem C. Descreva a relação existente entre a linguagem C e C++. 4

Prof. Yandre Maldonado - 13 Instruções programa: () Função E/S; Para utilizá-la ve-se incluir no cabeçalho o arquivo stdio.h (standard i/o); Forma geral: (string controle, lista argumentos); Primeiro programa em C: void void main main () () ( Oi ( Oi mundo. ); mundo. ); getch getch (); (); void void clrscr(); clrscr(); ("oi ("oi mundo"); mundo"); getch getch (); (); Prof. Yandre Maldonado - 14 scanf() Função E/S; Para utilizá-la ve-se incluir no cabeçalho o arquivo stdio.h (standard i/o); Forma geral: scanf(string controle, lista argumentos); Expressão controle \n : po ser Código %c utilizada ntro da string controle %d para iniciar uma nova linha; %ld Long %e Códigos Formatação %f %o %s %u %x Significado Caractere simples Decimal Notação científica Ponto flutuante Octal Caia caracteres Decimal sem sinal Hexacimal Prof. Yandre Maldonado - 15 Tipos variáveis: Tipo Bits Escala void 0 Sem valor char 8-128 a 127 int 16-32768 a 32767 float 32-3.4E+38 a 3.4E+38 double 64-1.7E+308 a 1.7E+308 long int 32-3.4E+38 a 3.4E+38 unsigned char 8 0 a 255 unsigned int 16 0 a 65535 5

Prof. Yandre Maldonado - 16 Declaração variáveis: tipo nome; Regras gerais: Declarar antes do uso; Incluir na claração o nome e tipo da variável; Na ocorrência mais uma variável mesmo tipo, pomos clará-las separando seus nomes por vírgulas em uma mesma linha; Em C, não existe tipo booleano (lógico) e nem string (caia); O valor zero (0) é consirado falso e qualquer outro valor é consirado verdairo; Exemplos: int K; double valores; float quadro; char caracter; Prof. Yandre Maldonado - 17 Outras funções E/S: putchar() A função putchar() imprime uma variável do tipo caracter na tela; Arquivo inclusão: Exemplo: char char letra; letra; clrscr(); clrscr(); letra='a'; letra='a'; putchar(letra); putchar(letra); getch(); getch(); Prof. Yandre Maldonado - 18 Outras funções E/S: getch() A função getch() lê um caractere do teclado sem ecoá-lo na tela (no turbo C); Arquivo inclusão: Exemplo: char char letra; letra; clrscr(); clrscr(); ("Digite ("Digite um um caracter: caracter: "); "); letra=getch(); letra=getch(); ("\ncaractere ("\ncaractere digitado: digitado: %c\n", %c\n", letra); letra); getch getch (); (); 6

Prof. Yandre Maldonado - 19 Outras funções E/S: getche() A função getche() lê um caractere do teclado e imprime o mesmo na tela; Arquivo inclusão: Exemplo: char letra; char letra; clrscr(); clrscr(); ("Digite um caracter: "); ("Digite um caracter: "); letra=getche(); letra=getche(); ("\ncaractere digitado: %c", letra); ("\ncaractere digitado: %c", letra); getch (); getch (); Prof. Yandre Maldonado - 20 Programa para calcular a área um círculo: main () () float R, R, Area; clrscr(); ("Digite o raio da da circunferencia: "); "); scanf ("%f",&r); Area = 3.14*R*R; ("A ("A area do do circulo e igual a: a: %f\n\n",area); getch (); (); Prof. Yandre Maldonado - 21 Exercícios: Faça um programa em C para calcular o volume um cilindro a partir dos valores da altura e do raio do mesmo. Dica: V=h*π*R 2 ; Faça um programa em C para calcular as raízes reais uma equação do segundo grau do tipo ax 2 +bx+c=0. Dica: =b 2-4*a*c; x 1 =(-b+lta 1/2 )/(2*a); x 2 =(-b-lta 1/2 )/(2*a); 7

Prof. Yandre Maldonado - 22 <math.h> Volume do Cilindro void void main main () () float float R, R, H, H, V; V; ("Calculo do do Volume um um Cilindro\n\n"); ("Digite o valor valor do do raio raio da da base base do do cilindro: "); "); scanf scanf ("%f", &R); &R); ("Digite o valor valor da da altura do do cilindro: "); "); scanf scanf ("%f", &H); &H); V=3.14*pow(R,2)*H; ("\n\no Volume do do Cilindro igual igual a: a: %.2f", V); V); ("\n\n\nfim da da execução!\n"); getch(); Prof. Yandre Maldonado - 23 <math.h> <math.h> void void main main () () float float a, a, b, b, c, c, lta, lta, x1, x1, x2; x2; ("Calculo ("Calculo das das ra zes ra zes reais reais da da equacao equacao do do tipo tipo ax2+bx+c=0\n\n"); ax2+bx+c=0\n\n"); ("Digite ("Digite o valor valor do do coeficiente coeficiente a: a: "); "); scanf scanf ("%f", ("%f", &a); &a); ("Digite ("Digite o valor valor do do coeficiente coeficiente b: b: "); "); scanf scanf ("%f", ("%f", &b); &b); ("Digite ("Digite o valor valor do do coeficiente coeficiente c: c: "); "); scanf scanf ("%f", ("%f", &c); &c); lta=b*b-4*a*c; lta=b*b-4*a*c; x1=(-b+sqrt(lta))/(2*a); x2=(-b-sqrt(lta))/(2*a); ("\n\no ("\n\no valor valor x1 x1 : : %f", %f", x1); x1); ("\ne ("\ne o valor valor x2 x2 : : %f", %f", x2); x2); ("\n\n\nfim ("\n\n\nfim da da execução!\n\n"); execução!\n\n"); getch getch (); (); Raízes da Equação do 2º grau Operadores: Prof. Yandre Maldonado - 24 Op. = *= /= %= += -= + Significado Atribuição Aritmético atribuição (multiplicação) Aritmético atribuição (divisão) Aritmético atribuição (módulo) Aritmético atribuição (adição) Aritmético atribuição (subtração) Soma Exemplo A=5; caracter= B ; N*=2; equivale a N=N*2; N/=4; equivale a N=N/4; N%=5; equivale a p igual ao resto da divisão p por 5; N+=3; equivale a N=N+3; N-=2; equivale a N=N-2; A=A+1; - * Subtração Multiplicação Total=subtotal-sconto; nota=nota*2; / % Divisão Módulo (retorna o resto da divisão) Comissão=lucro/4; Resto=8%3; ++ Incrementa um o operando i++; -- Decrementa um o operando j--; 8

Prof. Yandre Maldonado - 25 Alguns cuidados vem ser tomados quando se utiliza os operadores incremento: k=3*n++; é equivalente a k=(3*n); n=n+1; k=3*++n é equivalente a n=n+1; k=3*(n); Prof. Yandre Maldonado - 26 Outros operadores: Relacionais: Lógicos: Op. > >= < <= ==!= Op. &&! Significado Maior Maior igual Menor Menor igual Igual Diferente Significado Lógico E Lógico OU Lógico negação Prof. Yandre Maldonado - 27 Tabela precedência operadores: Op. ++ --! * / % + - < <= > >= Tipo Incremento Decremento Lógico Não Multiplicação Divisão Resto Adição Subtração Menor Menor igual Maior Maior igual 9

Prof. Yandre Maldonado - 28 Op. < <= > >= ==!= && = *= /= %= += -= Tipo Menor Menor igual Maior Maior igual Igual Diferente E (lógico) OU (lógico) Atribuição Atribuição (mult.) Atribuição (div.) Atribuição (resto) Atribuição (adição) Atribuição (subt.) Prof. Yandre Maldonado - 29 Comandos Decisão (Estruturas Seleção) if-else; if if (expressão (expressão teste) teste) switch; 1; 1; 2; Comando if-else Bloco 1 2;...... Estrutura geral n; n; else Esta estrutura seleção é else capaz tomar uma cisão 1; 1; 2; 2; simples, se a expressão Bloco 2...... n; n; teste for verdaira, o bloco instruções 1 será executado e o 2 ignorado. Se a expressão teste for falsa acontecerá o contrário; A palavra else po ser omitida juntamente com o seu bloco instruções (bloco 2). Neste caso, caso a expressão teste seja falsa, a execução salta para a próxima seguinte ao bloco 1; Prof. Yandre Maldonado - 30 Exemplo programa com if-else: dados dois valores inteiros X e Y scubra qual é o maior; void void int int X, X, Y; Y; ("Digite ("Digite um um valor valor inteiro inteiro para para X: X: "); "); scanf scanf ("%d", ("%d", &X); &X); ("Digite ("Digite um um valor valor inteiro inteiro para para Y: Y: "); "); scanf scanf ("%d", ("%d", &Y); &Y); if if (X>Y) (X>Y) ("O ("O valor valor X X é é maior maior que que o o Y.\n"); Y.\n"); else else ("O ("O valor valor Y Y é é maior maior que que o o X.\n"); X.\n"); getch getch (); (); 10

Prof. Yandre Maldonado - 31 O comando switch: Instrução seleção múltipla; Equivalente ao case do Pascal; Permite a seleção exclusiva um entre vários blocos instruções; Forma geral switch switch (expressão) (expressão) case case constante1: constante1: 1; 1;...... n; n; break; break; case case constante2: constante2: 1; 1;...... n; n; break; break;...... case case constante constante n: n: 1; 1;...... n; n; break; break; fault: fault: 1; 1;...... n; n; Prof. Yandre Maldonado - 32 Observações referentes à sintaxe: O corpo do switch ve estar entre chaves; O corpo cada case po conter um número qualquer instruções, sendo que a última ve ser um break. Caso este break não apareça, todas as instruções que estiverem ntro do switch (inclusive dos mais case s) que aparecerem na seqüência serão executadas; A break causa a saída imediata do corpo do switch; Quando a switch é executada, a expressão é avaliada e o controle é transferido diretamente para o grupo instruções corresponntes ao valor expressão; Prof. Yandre Maldonado - 33 Se nenhum case corresponr ao valor da expressão, o grupo instruções claradas em fault serão executadas. Isto quando o fault existir, pois ele é opcional; O padrão ANSI C termina que um switch possa ter pelo menos 257 comandos case; O comando switch só po testar igualda, enquanto que o if po avaliar expressões lógicas e relacionais; Duas constantes case no mesmo switch não pom ter o mesmo valor; 11

Prof. Yandre Maldonado - 34 Exemplo programa com o comando switch: void main () void main () char op; char op; ("Escolha uma opcao: \n\n"); (" ("Escolha 1 - Primeira uma opcao: opcao;\n\n"); \n\n"); (" (" 2 1 - - Segunda Primeira opcao;\n\n"); opcao;\n\n"); (" (" 3 2 - - Terceira Segunda opcao;\n\n"); opcao;\n\n"); (" (" 4 3 - - Quarta Terceira opcao;\n\n"); opcao;\n\n"); op=getch(); (" 4 - Quarta opcao;\n\n"); op=getch(); switch (op) switch (op) case '1': case '1': ("Voce escolheu a primeira opcao!\n\n"); break; ("Voce escolheu a primeira opcao!\n\n"); case break; '2': case '2': ("Voce escolheu a segunda opcao!\n\n"); break; ("Voce escolheu a segunda opcao!\n\n"); case break; '3': case '3': ("Voce escolheu a terceira opcao!\n\n"); break; ("Voce escolheu a terceira opcao!\n\n"); case break; '4': case '4': ("Voce escolheu a quarta opcao!\n\n"); break; ("Voce escolheu a quarta opcao!\n\n"); fault: break; fault: ("Voce nao escolheu nenhuma das opcoes oferecidas!\n\n"); ("Voce nao escolheu nenhuma das opcoes oferecidas!\n\n"); getch (); getch (); Prof. Yandre Maldonado - 35 Exercício: Faça um algoritmo para calcular o valor total a pagar por um consumidor que abasteceu seu carro, sabendo que serão informados o tipo combustível escolhido (G/A/D) e o número litros consumido. Consire os seguintes preços por litro combustível: Gasolina R$ 1,50; Álcool R$ 0,90; Diesel R$ 0,80. Prof. Yandre Maldonado - 36 Comandos Iteração (Estruturas Controle Repetições) Controle Repetição por Contador: Comando for; Controle Repetição Lógico: Iteração Pré-teste (equivalente ao while do Pascal): Comando while; Iteração Pós-teste (equivalente ao repeat do Pascal): Comando do-while; 12

Prof. Yandre Maldonado - 37 Comando for: Permite a repetição da execução um bloco instruções controlada por um contador; Forma geral: for (inicialização; condição; incremento) bloco instruções; On: inicialização: é a atribuição do valor inicial ao contador; condição: estabelece a condição limite parada para a repetição do laço; incremento: estabelece o valor segundo o qual o contador ve variar; Prof. Yandre Maldonado - 38 Exemplo uso do comando for: um programa que imprime os números 1 a 20 na tela; void main () () int int i; i; for for (i=1;i<=20;i++) ("Numero: %d\n",i); getch (); (); Prof. Yandre Maldonado - 39 Exercícios: 1. Durante trinta dias um terminado mês, foram colhidas as temperaturas médias diárias uma terminada região em graus celsius. Faça um algoritmo que calcule e informe a temperatura média do mês, e a temperatura mais alta do mês. 2. Faça um algoritmo que calcule o fatorial um número inteiro fornecido pelo usuário. 13

Prof. Yandre Maldonado - 40 Comando while: Permite a repetição da execução um bloco instruções controlada por uma condição lógica; Forma geral: while (condição) bloco instruções; On: condição: po ser qualquer expressão (aritmática, lógica ou relacional), e é verdaira quando diferente 0 (zero); bloco instruções: comando ou bloco comandos que vem ter a execução realizada enquanto a condição for verdaira; A execução do laço while se encerra quando a condição for falsa, neste caso o controle execução passa para a primeira linha que aparecer após o bloco instruções; Prof. Yandre Maldonado - 41 Exemplo uso do comando while: um programa que imprime na tela os números inteiros digitados pelo usuário, até que este digite um valor negativo; void main () () int int n=0; while (n>=0) ("Digite um um numero: "); "); scanf ("%d",&n); Prof. Yandre Maldonado - 42 Comando do-while: Permite a repetição da execução um bloco instruções controlada por uma condição lógica. Esta condição é testada após a execução do bloco, isso significa que um laço do-while será executado pelo menos uma vez; Forma geral: do bloco instruções; while (condição); On: condição: po ser qualquer expressão (aritmática, lógica ou relacional), e é verdaira quando diferente 0 (zero); bloco instruções: comando ou bloco comandos que vem ter a execução realizada enquanto a condição for verdaira; A execução do laço do-while se encerra quando a condição for falsa, neste caso o controle execução passa para a primeira linha que aparecer após o comando do-while; 14

Prof. Yandre Maldonado - 43 Exemplo uso do comando do-while: um programa que imprime na tela os números inteiros digitados pelo usuário, até que este digite um valor negativo; void main () () int int n; n; do do ("Digite um um numero: "); "); scanf ("%d",&n); while (n>=0); Prof. Yandre Maldonado - 44 Exercícios: 1. Faça um algoritmo para calcular a soma entre os números um conjunto números inteiros e positivos a ser fornecido pelo usuário utilizando os comandos while e do-while; 2. Faça um algoritmo que permita ao usuário inserir dados para as seguintes perguntas: Ida (inteiro); Altura (real); Sexo (caracter, m ou f); Sabe-se que o número entrevistados é infinido, e pois inseridos os dados o algoritmo verá informar: O número mulheres cuja ida está entre 20 e 35 anos; O número homens que tem mais 1.80m altura; Prof. Yandre Maldonado - 45 Agregados Dados Homogêneos: conjuntos (ou matrizes) Coleção variáveis mesmo tipo referenciadas por um nome comum; Cada elemento específico é acessado através um índice; Os elementos ocupam posições contíguas memória; Equivalente ao array (vetor) em Pascal; Heterogêneos: estruturas Reúnem uma coleção variáveis que pom ser referenciadas por um nome; Maneira conveniente se ter informações relacionadas agrupadas; Equivalente ao record (registro) em Pascal; 15

Prof. Yandre Maldonado - 46 Vetores e Matrizes (Agregados Homogêneos) Forma geral: tipo nome_mat [tamanho]; Exemplo 1: uma vetor para armazenar até 10 valores inteiros: int vetor_inteiro [10]; Exemplo 2: uma vetor para armazenar 20 caracteres (equivalente a string do Pascal): char nome_pessoa [20]; Em C, toda vetor tem 0 como o índice do seu primeiro elemento. Portanto, quando você escreve char p[10]; você está clarando uma vetor caracteres que tem z elementos, p[0] até p[9]. Prof. Yandre Maldonado - 47 O seguinte programa carrega uma matriz inteiros com os números 0 a 99: void main () () int int x[100]; int int i; i; for for (i=0;i<100;++i) x[i]=i; for for (i=0;i<100;++i) (" (" %d %d,",x[i]); ("\n\n"); getch(); Prof. Yandre Maldonado - 48 Para a leitura vetores caracteres, po-se utilizar a função gets(), da biblioteca ; Forma geral: gets(matriz_a_ser_lida); Exemplo: ler uma caia caracteres a ser digitada pelo usuário na matriz nome scrita a seguir: char nome[25];... gets(nome); Para escrever uma vetor caracteres na tela, po-se utilizar a função puts(), também presente na biblioteca ; Forma geral: puts(matriz_a_ser_escrita); 16

Prof. Yandre Maldonado - 49 O seguinte programa lê uma matriz caracteres (string) digitada pelo usuário e posteriormente imprime na tela: void void main main () () char char nome[25]; ("Digite um um nome: nome: "); "); gets(nome); ("O ("O nome nome que que voce voce digitou e: e: "); "); puts(nome); // // ou ou ("O ("O nome nome que que voce voce digitou e: e: %s\n\n", nome); getch getch (); (); Prof. Yandre Maldonado - 50 Estruturas: A palavra chave struct informa ao compilador que um molo estrutura está sendo finido; Forma geral: struct intificador tipo nome_da_variável; tipo nome_da_variável; tipo nome_da_variável;... Exemplo: struct pessoa char nome[30]; char enreco[40]; char cida[20]; int ida; ; A claração mostrada ao ao lado apenas fine a forma da da estrutura, neste caso ainda não foi foi criada nenhuma variável, portanto ainda não houve gasto memória. Prof. Yandre Maldonado - 51 Declaração Matrizes Bidimensionais Para clarar uma matriz bidimensional inteiros tamanho 10x10, po-se fazer: int matriz [10] [10]; Para atribuir o valor 30 à célula índices 5 (na primeira dimensão) e 4 (na segunda dimensão), po-se fazer: matriz [5][4]=30; 17

Prof. Yandre Maldonado - 52 Para se criar uma variável do tipo da estrutura finida anteriormente, você ve clarar: struct pessoa cliente; assim, você estaria criando uma variável chamada cliente do tipo da estrutura pessoa; A quantida bytes consumidos por uma variável um tipo estrutura equivale a soma dos valores gastos por cada um seus membros (ou campos); No caso anterior teríamos: 30+40+20+2=92 bytes; Os membros individuais uma estrutura são referenciados através do operador ponto. Para atribuir o valor 45 a ida da variável cliente clarada anteriormente, poríamos ter: cliente.ida=45; Prof. Yandre Maldonado - 53 Matrizes Estruturas: Po-se criar matrizes estruturas; Para criar uma matriz para armazenar informações referentes a 50 pessoas, acordo com a estrutura pré-finida anteriormente, poríamos fazer: struct pessoa clientes[50]; Neste caso, para atribuirmos o valor 30 ao campo ida do cliente índice 17, poríamos fazer: clientes[17].ida=30; Prof. Yandre Maldonado - 54 Exercícios: 1. Faça um algoritmo que permita ao usuário digitar valores inteiros e positivos para uma matriz tamanho físico 10X10, e que ao final informe qual é a média, e o valor do maior número digitado. 2. Faça um algoritmo que permita armazenar os nomes e as quatro notas bimestrais para um total 20 alunos. Depois armazenadas as informações, o algoritmo verá fazer uma varredura sobre as mesma a fim intificar qual dos alunos obteve a maior nota no 3º bimestre e informar o seu nome. 3. Faça um algoritmo que armazene as seguintes informações sobre um conjunto no máximo 30 carros que estão a venda: molo, ano, preço, e placa. Ao final, o algoritmo ve percorrer as informações a fim scobrir qual dos carros é o mais barato, e ve informar seu molo e ano. 18