Baixe o app para aproveitar ainda mais
Prévia do material em texto
Programação Computacional para Engenharias de Energias e M Ambiente 2018.1 Aula 04 Prof. Gisele Azevedo de A. Freitas Departamento de Integração Acadêmica e Tecnológica em Engenharia e Arquitetura (DIATEC) Ementa o Introdução à computação. o Sistemas de numeração. o Tipos básicos de dados. o Operadores. o Estruturas de controle de fluxo. o Tipos de dados definidos pelo usuário. o Manipulação de memória. o Funções. o Sistema de E/S. o Algoritmos. o Aplicações em Engenharias de Energias e Meio Ambiente. Alo Mundo Passos 1.Ligar computador 2.Abrir Codeblocks 3.Entrar no menu Item File - New - Project - Escolher item Console Application 4.Escolher a opção C 5.Digitar nome para um nome (sem espaco) do Projeto no Project Name 6.Clicar Next 7.Clicar em Finish para criar o projetos. 8.Clicar duas vezes em Sources na barra esquerda 9.Clicar duas vezes em main.c Alo Mundo #include <stdio.h> #include <stdlib.h> int main () { printf(“AL\742 Mundo!!\n”); // Trouxemos ele do stdio.h return 0; } Para executar: 1.Clicar no item de Menu Build 2.Clicar no item Run 3.Clicar no SIM Tipos de Dados • Hierarquia de tipos de dados • Tipos de dados simples Classificação de tipos de dados simples (TDS) Há 3 classes de TDS: – Numéricos • pré-definidos: char, int, float, double • pertencem ao léxico da linguagem – Apontadores • definidos pelo utilizador • não pertencem ao léxico da linguagem • requer a utilização do símbolo * – Enumerados • definidos pelo utilizador • não pertencem ao léxico da linguagem • requer a utilização da palavra reservada enum Exemplo de um Programa // Exemplo de programa em C // Isto é uma linha de comentário void main() { int a; // declaracao de variável a = 3 + 2; // soma 3 com 2 } Um programa em C é composto por um conjunto de Funções. A função pela qual o programa começa a ser executado chama-se main. Após cada cada comando em C deve-se colocar um ; (ponto-e-vírgula). Um programa em C deve ser Identado para que possa ser lido com mais facilidade. Identificadores São os nomes que podem ser dados para variáveis e funções. Para a escolha destes nomes é necessário seguir algumas regras: Um identificador deve iniciar por uma letra ou por um "_" (underscore); A partir do segundo caracter pode conter letras, números e underscore; Deve-se usar nomes significativos dentro do contexto do programa; C é uma linguagem case-sensitive, ou seja, faz diferença entre nomes com letras maiúsculas e nomes com letras minúsculas. Peso e peso são diferentes; Idade, Contador, PesoDoCarro, Usuario_1, CorDaPagina, RaioDoCirculo Costuma-se usar maiúsculas e minúsculas para separar palavras: "PesoDoCarro"; Deve ser diferente dos comandos da linguagem; Deve ter no máximo 31 caracteres (no caso do TurboC); Pode conter números a partir do segundo caracter; Exemplos: Idade, Contador, PesoDoCarro, Usuario_1, CorDaPagina, RaioDoCirculo Tipos Básicos Tipos básicos em C: • char, • int, • float, • double • Void Tipos Básicos - Char • char: O tipo char é utilizado para representar caracteres. • Um caractere é representado através de um byte na memória. Lembre-se que um byte tem 8 bits, ou seja, é possível representar 256 números (ou no caso, codificar até 256 caracteres distintos). • A linguagem C utiliza esse número como um índice na tabela ASCII (American Standard Code for Information Interchange). #include <stdio.h> int main () { char C; C= 65; printf(“Tabela ASCII 65 = %c!!\n”, C); // Ìmprime A return 0; } Tipos Básicos - Char • char: O tipo char é utilizado para representar caracteres. • Um caractere é representado através de um byte na memória. Lembre-se que um byte tem 8 bits, ou seja, é possível representar 256 números (ou no caso, codificar até 256 caracteres distintos). • A linguagem C utiliza esse número como um índice na tabela ASCII (American Standard Code for Information Interchange). • tabela ASCII original é composta por 128 caracteres, e portanto 7 bits seriam suficientes para representar uma posição da tabela. Como a memória é organizada em bytes, o bit restante foi depois utilizado para criar uma tabela com mais caracteres, entre eles vários caracteres acentuados inexistentes na língua inglesa (que foi utilizada para criar a tabela ASCII original). Tipos Básicos - int • int: Número inteiro é o tipo padrão e o tamanho do conjunto que pode ser representado normalmente depende da máquina em que o programa está rodando. • Na linguagem C, números naturais (0, 1, 2, 3, etc.) são conhecidos como "inteiros sem sinal". Esse é um dos tipos-de-dados básicos da linguagem C. Tipos Básicos Cinco tipos básicos em C que são: • char: Caracter: O valor armazenado é um caractere. Caracteres geralmente são armazenados em códigos (ASCII). • int: Número inteiro é o tipo padrão e o tamanho do conjunto que pode ser representado normalmente depende da máquina em que o programa está rodando. • float: Número em ponto flutuante de precisão simples. São conhecidos normalmente como números reais. • double: Número em ponto flutuante de precisão dupla • void: Este tipo serve para indicar que um resultado não tem um tipo definido. Uma das aplicações deste tipo em C é criar um tipo vazio que pode posteriormente ser modificado para um dos tipos anteriores. Tipos Básicos Cinco tipos básicos em C que são: • char: Caracter: O valor armazenado é um caractere. Caracteres geralmente são armazenados em códigos (ASCII). • int: Número inteiro é o tipo padrão e o tamanho do conjunto que pode ser representado normalmente depende da máquina em que o programa está rodando. • float: Número em ponto flutuante de precisão simples. São conhecidos normalmente como números reais. • double: Número em ponto flutuante de precisão dupla • void: Este tipo serve para indicar que um resultado não tem um tipo definido. Uma das aplicações deste tipo em C é criar um tipo vazio que pode posteriormente ser modificado para um dos tipos anteriores. Classificação de tipos de dados simples (TDS) Atomicidade – têm valor atómico – Exemplo (inteiros): int x=31; • Ordem – têm uma ordem ou escala – Exemplo (inteiros): 20<31 <35<36 Classificadores de TDS Qualificadores de comprimento (no de bytes) – short – long – Exemplos: short int x; long float y; • Qualificadores de sinal – signed – unsigned – Exemplos: signed int w; unsigned int z; Tipos de Dados Os tipos de dados existentes na linguagem C são: •int : número inteiro •float : número decimal •char : caracter Comparando com algoritmo temos: inteiro int real float caracter char Formatos de leitura/escrita Formatos de leitura/escrita Tipos de dados inteiros: char e int Uma variável do tipo char armazena um valor inteiro de 1 byte, podendo ser usada para guardar um carácter ou um inteiro. • Exemplos: char c; c = ‘A’; /* estas instruções são equivalentes */ c = 65; //---------------------------- char a, b; a = 5; /* a contém o valor 5 */ b = ‘5’; /* b contém o valor 53 na tabela ASCII */ Métodos de Representação de Algoritmos □ Fluxograma. ■ Representação gráfica por meio de símbolos geométricos, da solução algorítmica de um problema. Métodos de Representação de Algoritmos □ Exemplo - Fluxograma. 25 Fluxogramas ou Processamento 26 Exemplo de Fluxograma 27 Exercício de Fluxograma Construa um fluxograma para obter o resultado da multiplicação de dois números inteiros quaisquer fornecidos pelo usuário. A Linguagem C: Características ✹ C é uma linguagem de altonível com uma sintaxe bastante estruturada e flexível tornando sua programação bastante simplificada. ✹ Programas em C são compilados, gerando programas executáveis. ✹ C compartilha recursos tanto de alto quanto de baixo nível, pois permite acesso e programação direta do microprocessador. Com isto, rotinas cuja dependência do tempo é crítica, podem ser facilmente implementadas usando instruções em Assembly. 29 Linguagem C □ Case sensitive; □ Tipos de dados primitivos: caractere, inteiro e real; □ Possui estruturas de controle de fluxo; □ Operadores aritméticos, lógicos, relacionais e condicional; □ Todo programa tem uma função principal chamada main(); □ Todo linha de instrução em um programa é finalizada com um “;”; 31 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 • O sistema Unix é escrito em C e C++ 32 Dicas • Termine todos os comandos com ; • Quando ocorrer um erro de compilação, dê um duplo clique sobre a mensagem de erro para 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 // ou entre /* */ /* isto é um comentário */ // isto também é um comentário 33 Exemplo 1 /* meu primeiro programa C */ #include <stdio.h> #include <stdlib.h> main() { printf ("Alo mundo!"); //mostra system("PAUSE"); //fica parado } 34 Declarações • Declaram as variáveis e seus tipos • Os nomes das variáveis devem conter apenas letras, dígitos e o símbolo _ e iniciar com letra ou _ • Os principais tipos são: int, float, double e char • Exemplos 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! 35 Na Linguagem C... #include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; system("PAUSE"); } 36 Comando de atribuição • Atribui o valor da direita à variável da esquerda • O valor pode ser: – uma constante, – uma variável ou – uma expressão • Exemplos x = 4; // lemos: x recebe 4 y = x + 2; // lemos: y recebe (x mais 2) y = y + 4; // lemos: y recebe (y mais 4) valor = 2.5; sexo = 'F' // constantes devem estar entre aspas simples (apóstrofe) 37 Entrada e Saída de Dados • 38 Entrada de Dados • Função scanf scanf ("formatos", &var1, &var2,...) scanf("%s", &nome); %d inteiro decimal %f float %lf double %c char %s string Não deixar espaço em branco!!! 39 Entrada de Dados • Função scanf scanf ("formatos", &var1, &var2,...) Exemplos: #include <stdio.h> #include <stdlib.h> int main() { int i, j; float x; char c; printf(“Digite um caractere:”); scanf("%c", &c); printf(“Digite um inteiro:”); scanf("%d", &i); printf(“Digite um inteiro e um real:”); scanf("%d %f", &j, &x); system(“PAUSE"); return 0; } scanf("%s", &nome); %d inteiro decimal %f float %lf double %c char %s string Não deixar espaço em branco!!! 40 Entrada de Dados (Exemplo 2) Algoritmo Na Linguagem C... #include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; scanf ("%f",&n1); scanf ("%f",&n2); scanf ("%f",&n3); system("PAUSE"); } OBS: não deixe espaço antes do fecha " ler n1 ler n2 ler n3 ler n1, n2, n3 scanf ("%f %f %f",&n1, &n2, &n3); 41 Operadores Matemáticos Decrementa em 1 o valor de xx---- Incrementa em 1 o valor de xx++++ Resto da divisão de x por yx % y % Divide x por y x / y / Multiplica x e yx * y* Subtrai y de xx – y - Soma x e yx + y+ ComentárioExemploOperador CUIDADO!!!! 42 • OBS: o operador “/” (divisão) terá um resultado inteiro se os dois operandos forem inteiros. Para um resultado real, um dos dois operandos deve ser real (ou os dois) Exemplo: int X,Y; float Z,U,T; X=2; Y=3; U=3; Z=X/Y; // Z terá o valor zero T=X/U; // T terá o valor 0.666667 43 Entrada de Dados (exemplo 3) Na Linguagem C... #include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; scanf ("%f %f %f",&n1, &n2, &n3); media=(n1+n2+n3)/3; system("PAUSE"); } ler n1, n2, n3 Media!(n1+n2+n3)/3 Algoritmo 44 Saída de Dados • Função printf printf ("formatos", var1, var2,...) Exemplos: int i, j; float x; char c; printf("%d", i); printf("%d %f", j, x); printf("%c", c); %d inteiro %f float %lf double %c char %s string 45 Saída de Dados (Exemplo 4) #include <stdio.h> #include <stdlib.h> main() { int i, j; float x; i = 1; j = 2; x = 3; printf("%d", i); printf(" %d %f", j, x); system("PAUSE"); } 46 Saída de Dados (Exemplo 5) #include <stdio.h> #include <stdlib.h> main() { // definicao de variaveis float n1, n2, n3, media; // entrada de dados scanf ("%f %f %f",&n1, &n2, &n3); // operacao media=(n1+n2+n3)/3; // saida de dados printf("%f", n1); printf("%f", n2); printf("%f", n3); printf("%f", media); system("PAUSE"); } 47 Saída de Dados (Exemplo 6) #include <stdio.h> #include <stdlib.h> main() { // definicao de variaveis int i, j; float x; //entrada de dados scanf("%d", &i); scanf("%d %f", &j, &x); // exibicao de dados printf("I= %d\n", i); printf("J= %d\nX= %f\n", j, x); system("PAUSE"); } 48 Entrada e Saída Exemplo 8 #include <stdio.h> #include <stdlib.h> main() { float n1, n2, n3, media; printf("Digite 3 notas: "); scanf ("%f %f %f",&n1, &n2, &n3); media=(n1+n2+n3)/3; printf ("Media: %.2f\n",media); system("PAUSE"); } Exemplo 7 #include <stdio.h> #include <stdlib.h> int main() { float n1, n2, n3, media; scanf ("%f %f %f",&n1, &n2, &n3); media=(n1+n2+n3)/3; printf ("%f",media); system("PAUSE"); return 10; } 49 Operadores de Atribuição Equivale a x = x % yx %= y%= Equivale a x = x / yx /= y /= 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 50 Funções Matemáticas Tangente de xtan(x)tan Raiz quadrada de xsqrt(x)sqrt Seno de xsin(x)sin Calcula x elevado à potência ypow(x, y)pow Logaritmo decimal de xlog10(x)log10 Logaritmo natural de xlog(x)log Arredonda o número real para baixo; floor(3.2) é 3floor(x)floor Valor absoluto de xfabs(x)fabs e elevado à potencia xexp(x)exp Cosseno de x (x em radianos)cos(x)cos Arredonda o número real para cima; ceil(3.2) é 4ceil(x)ceil ComentárioExemploFunção #include <math.h> 51 Exemplo 9 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 é: 52 Exemplo 9 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; 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 e’ %.2f\n", distancia); system("PAUSE"); } 53 Exercicio I 3) 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 fornecidosa altura e o raio desse cilindro. Sabendo que: - a lata de tinta custa R$20,00 - cada lata contém 5 litros - cada litro de tinta pinta 3 metros quadrados. e que: Área do cilindro= 2 vezes a área da base + circunferencia da base vezes a altura e que raio e altura são dados de entrada. 54 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); areaCilindro=2*3.14*pow(raio,2) + 2*3.14*raio*altura; printf ("\nA area do cilindro e’ %.2f metros quadrados", areaCilindro); qtdadeLitros=areaCilindro/3; printf ("\nA quantidade de litros necessaria e‘ de %.2f ", qtdadeLitros); qtdadeLatas=qtdadeLitros/5; printf ("\nA quantidade de latas necessaria e’ de %.2f ", qtdadeLatas); custo=qtdadeLatas*20; printf ("\nO valor total das tintas e’ de R$ %.2f \n", custo); system("PAUSE"); } Palavras-reservadas Palavras chaves em C (padrão ANSI) auto Double int Struct break Else long Switch case Enum register typedef char Extern return union const Float short unsigned continue For signed void default Goto sizeof volatile do If static while Sintaxe do Programa Todo programa C inicia sua execução na função main(). No início da função existe um { e no final um }. Cada instrução encerra com ; (ponto e vírgula) que faz parte do comando. Comentários são informações que não serão executadas. Elas devem ser colocados das seguintes formas: /* comentário */ ou // comentário Atribuição de Valores Para atribuir um valor a uma variável na linguagem C utiliza-se o sinal de igual (=). Ex: int a; //cria a variável de nome a a = 0; //atribui o valor 0 na variável a A atribuição pode ser feita no momento da declaração da variável: int a = 0; Comparando com algoritmo temos: a <- 0 a = 0; Saída de Dados A função padrão da linguagem C para imprimir mensagens e valores na tela é o printf(). printf(“expressão”, argumentos); Comparando com algoritmo temos: escreva(“expressão”, argumentos) printf(“expressão”, argumentos); Saída de Dados Para imprimir valor de argumento deve-se incluir na expressão um controle que indica o formato do valor que será exibido. Ex: printf(“Cinco é igual a %d”, 5); Os controles que indicam os formatos são: %d inteiro %f float %c char Podem existir vários argumentos no mesmo comando, basta separá-los com uma vírgula. Saída de Dados Na expressão podem ser incluídos caracteres de controle como: \n nova linha \t tab \b volta um caractere \" mostra caractere aspas \\ mostra caractere barra Saída de Dados Para determinar a quantidade de casas decimais que será usada ao imprimir um número real deve- se modificar o controle acrescentando essa informação. Ex: #include <stdio.h> main() { float x = 1234.56; printf(“%f”, x); //imprime 1234,56000000 (ANSI) printf(“%4.2f”,x); //imprime 1234,56 printf(“%10.1f”,x); //imprime 1234,6 (CodeBlocks) // imprime 1234,5 (C ANSI) } Entrada de Dados A função padrão da linguagem C para entrada de dados pelo teclado é o scanf(). scanf(“expressão”, argumentos); Comparando com algoritmo temos: leia(variável) scanf(“expressão”, argumentos); Entrada de Dados Na expressão deve-se determinar o tipo de valor que será lido (%d ou %f ou %c) e no argumento tem o nome da variável que receberá o valor lido precedido pelo & para indicar que é endereço de memória. Ex: scanf(“%d”, &x); //lê um valor inteiro para variável x scanf(“%f”, &y); //lê um valor real para variável y scanf(“%c”, &z); //lê um caractere para variável z Sintaxe do Programa A estrutura básica de um programa C é: #include <stdio.h> main( ) { // Área de declaração de variáveis /* Área de comandos do programa */ } Tipos de dados reais: float e double O tipo de dados float é para números reais de precisão simples (4 bytes). • O tipo de dados double é para números reais de precisão dupla (8 bytes). Tipos de Dados Simples • Exemplos: float x, y, z, w, t; x = 0.345; y = .67; z = 89.; w = 6.2E+5; /* notação científica: representa 6.2 x105 */ t = 3.5E-4; /* notação científica: representa 3.5*10-4 */ printf (“x= %f y = %f z = %f w= %f t=%f ”, x,y,z,w,t); //---------------------------- double a; a = 5.23456789; » Constantes e Variáveis O nome das variáveis deve sempre começar com uma letra ou com o caractere ’_’ e pode ser seguido por um ou mais caracteres alfanuméricos. A linguagem C é “case sensitive”, ou seja, para ela a variável X e a variável x são diferentes. Todas as variáveis devem ser declaradas antes de poderem ser utilizadas. A forma de declarar é: tipo nome_variável; Sintaxe do Programa A estrutura básica de um programa C é: #include <stdio.h> main( ) { // Área de declaração de variáveis /* Área de comandos do programa */ } Sintaxe do Programa Todo programa C inicia sua execução na função main(). No início da função existe um { e no final um }. Cada instrução encerra com ; (ponto e vírgula) que faz parte do comando. Comentários são informações que não serão executadas. Elas devem ser colocados das seguintes formas: /* comentário */ ou // comentário Atribuição de Valores Para atribuir um valor a uma variável na linguagem C utiliza-se o sinal de igual (=). Ex: int a; //cria a variável de nome a a = 0; //atribui o valor 0 na variável a A atribuição pode ser feita no momento da declaração da variável: int a = 0; Comparando com algoritmo temos: a <- 0 a = 0;
Compartilhar