Universidade do Estado de Santa Catarina – CCT/UDESC INTRODUÇÃO A PROGRAMAÇÃO EM C THOBER CORADI DETOFENO, MSC. Aula 08 JOINVILLE 2013 Introdução A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da Bell Laboratories; Uma das grandes vantagens do C é que ele possui tanto características de "alto nível" quanto de "baixo nível"; O C é derivado de uma outra linguagem: o B, criado por Ken Thompson. O B, por sua vez, veio linguagem BCPL, inventada por Martin Richards; O C é uma linguagem de programação genérica que é utilizada para a criação de programas diversos como, por exemplo: – Processadores de texto; – Planilhas eletrônicas; – Sistemas operacionais; – Programas de comunicação; Visão Geral de um programa em C • A geração do programa executável a partir do programa fonte obedece a uma seqüência de operações antes de tornar-se um executável; • A seqüência para gerar um executável é: 1. Editor (módulo fonte em C) 1. Pré-processador (novo fonte expandido) 1. Compilador (arquivo objeto) 1. Lincador (executável) Visão Geral de um programa em C • Um programa em C consiste em uma ou várias funções, uma das quais precisa ser denominada main; • O programa sempre começará executando a função main; • Toda e qualquer função adicional deve ser adicionar antes ou após a função main; • Regras gerais: – Toda função é iniciada por chave de abertura (“{“) e encerrada com chave de fechamento (“}”); – Toda função deve ser precedida por parênteses, exemplo: main(void); – As linhas de código são sempre encerradas por ponto e virgula (“;”); – Os comandos são executados na ordem que aparecem; – O C é case sensitive,ou seja, letras maiúsculas e minúsculas fazem diferença. Exemplo: soma é diferente de Soma que é diferente de SOMA. Visão Geral de um programa em C • Exemplo de programa em C /* Um Primeiro Programa */ #include <stdio.h> main () { printf ("Ola!"); } • Compilando e executando este programa você verá que ele coloca a mensagem Ola! na tela. Vamos entender: – A primeira linha do programa é uma linha informativa, é um comentário. O compilador não irá interpretar seu conteúdo; – A linha #include <stdio.h> diz ao compilador que ele deve incluir o arquivocabeçalho stdio.h. Esse arquivo contém uma série de funções já prontas para auxiliar o desenvolvimento; – A terceira linha contém a função “main()”. Está e a função que será chamada na execução do programa. Se conteúdo será executado de forma seqüencial. Visão Geral de um programa em C • Um programa em C é geralmente salvo com a extensão “.c” e bibliotecas de funções são salvas em arquivos “.h”; • Quando se desenvolve um programa é importante sempre pensar que no futuro alguém pode vir a dar manutenção neste ou ainda fazer melhorias. Dessa forma é importante manter sempre a organização, para isso algumas regras devem ser respeitadas: – Procure comentar o programa de modo que a pessoa que venha analise o código entenda o que está acontecendo. Exemplo: #include <stdio.h> /* Função que imprime na tela o quadrado de um número */ square (int x) { printf ("O quadrado e %d",(x*x)); } main () { int num; printf ("Entre com um numero: "); scanf ("%d",&num); square(num); } Visão Geral de um programa em C • Regras gerais (continuação): – Procure tabular o programa para que fique mais fácil a interpretação. Exemplo: #include <stdio.h> #define GRAUS 'G' #define RAD 'R' union angulo{ int graus; float radianos; }; void main(){ union angulo ang; char op; printf("\nNumeros em graus ou radianos? "); scanf("%c",&op); if (op == GRAUS){ ang.graus = 180; printf("\nAngulo: %d\n",ang.graus); }else if (op == RAD){ ang.radianos = 3.1415; printf("\nAngulo: %f\n",ang.radianos); }else printf("\nEntrada invalida!!\n"); } #include <stdio.h> #define GRAUS 'G' #define RAD 'R' union angulo{ int graus; float radianos; }; void main(){ union angulo ang; char op; printf("\nNumeros em graus ou radianos? "); scanf("%c",&op); if (op == GRAUS){ ang.graus = 180; printf("\nAngulo: %d\n",ang.graus); }else if (op == RAD){ ang.radianos = 3.1415; printf("\nAngulo: %f\n",ang.radianos); }else printf("\nEntrada invalida!!\n"); } Visão Geral de um programa em C • Regras gerais (continuação): – Procure sempre usar nomes para variáveis e funções intuitivos. Evite usar, por exemplo, função1(), função2(); – Se a empresa possuir padrões para criação de variáveis e funções, procurar sempre respeitar. Caso contrário procure manter um padrão para seus programas; Ambiente de Programação Existem várias IDEs utilizados para desenvolver programas em C, na seqüência será apresentado o DEV C++; O DEV C++ é uma interface gratuita e pode ser facilmente achado na internet; Sugestão de link: http://www.bloodshed.net/dev/devcpp.html http://prdownloads.sourceforge.net/dev-cpp/devcpp-4.9.9.2_setup.exe Ambiente de Programação Após instalar o programa, ao executar será aberto a seguinte interface: Ambiente de Programação Para criar um programa clicar no botão de “Source File”: Ambiente de Programação Na tela aberta digitar o seguinte programa: Ambiente de Programação Após digitar o programa, clique no botão de salvar; Quando for salvar o programa selecionar a opção “C source file (*.c ou *.cpp); Ambiente de Programação Após salvo, para compilar o programa e então gerar o executável é necessário clicar no botão marcado abaixo: Ambiente de Programação Ao clicar será aberto a tela abaixo. Essa tela exibe se o programa foi gerado com sucesso ou se ele tem erros. Para executar o programa, caso ele tenha sido gerado com sucesso clicar no botão a direita do botão de compilar Ambiente de Programação Caso de erro o compilador irá sinalizar o local do erro: Primeiros passos Todos os programas em C vão conter sempre a seguinte estrutura: #include <stdio.h> main () { //Código } O programa deve conter uma ou mais bibliotecas de funções (#include <stdio.h>); O programa deve conter a função principal ( main() ) Dentro da função principal irá o código do programa; Primeiros passos Para iniciar, vamos analisar nosso primeiro programa: #include <stdio.h> main () { printf("Primeiro programa"); printf("\n\n\n"); system("pause"); } O resultado do programa será a impressão da mensagem: “Primeiro programa” A impressão da mensagem é dada através do comando printf(); A função printf() imprime o conteúdo que está dentro dos parentêses; Primeiros passos Para iniciar, vamos analisar nosso primeiro programa: #include <stdio.h> main () { printf("Primeiro programa"); printf("\n\n\n"); system("pause"); } Na quinta linha o programa está imprimindo “\n\n\n”. A combinação de “\” junto com o caractere “n” indica quebra de linha. Nesse caso é pulado 3 linhas; A sexta linha faz com que o programa contem a função system(). A função system chama uma função do sistema operacional, nesse caso a função pause. Primeiros passos Exemplo 2: #include <stdio.h> main () { printf("Exibindo os diretorios do drive c:"); printf("\n\n\n"); system("c:"); system("dir /w /p"); system("pause"); } Neste exemplo estamos acessando o drive “C” do computador e então listando todos os diretórios através do comando “dir /w /p”; Tipo de variáveis Variáveis são espaços na memória reservados para armazenar um determinado conteúdo; Toda variável deve possuir um tipo definido. Através da definição do tipo é determinado o conteúdo que será armazenado; Os principais tipos de variáveis são: int Armazena números inteiros; float Armazena números decimais; char Armazena caracteres; Tipo de variáveis Todas as variáveis devem ser declaradas antes do seu uso conforme exemplo abaixo: #include <stdio.h> main () { int x; // Declaração de número inteiro float y; // Declaração de número decimal char c; // Declaração de um caractere; char s[40]; // Declaração de uma variável com 60 caracteres; system("pause"); } Tipo de variáveis • Quando criado uma variável, esta permanece ocupando espaço na memória independente de ser utilizada; • Para ler o valor de uma variável pode-se utilizar a função “scanf()”; • A função “scanf()” possui dois parâmetros: 1. 2. Tipo da variável; Nome da variável; Tipo de variáveis • Exemplo: #include <stdio.h> main () { int x; float y; char c; char str [40]; printf("Digite um numero inteiro: "); scanf("%d",&x); printf("Digite um numero decimal: "); scanf("%f",&y); printf("Digite uma palavra: "); scanf("%s",&str); printf("Digite um caractere: "); c = getche(); system("pause"); } Tipo de variáveis • Conforme demonstrado no exemplo anterior, a função scanf possui dos parâmetros: – O primeiro parâmetro indica o tipo de variável. • • • – • Para números inteiros %d; Para números decimais %f; Para textos %s; O segundo parâmetro indica o nome da variável. A variável deve vir sempre após “&”; Para ler um caractere foi usado a “getche()”: – A função getche lê um caractere e após pula para o comando seguinte. Não espera o usuário apertar [ENTER]. Tipo de variáveis • Para exibir o valor digitado em tela utiliza-se a função printf; • No local que deseja exibir a variável utiliza-se %d, %f, %s ou %c para exibir respectivamente um número inteiro, decimal, texto, caractere; Tipo de variáveis • Exemplo: #include <stdio.h> main () { int x; float y; char c; char str [40]; printf("Digite um numero inteiro: "); scanf("%d",&x); printf("Digite um numero decimal: "); scanf("%f",&y); printf("Digite uma palavra: "); scanf("%s",&str); printf("Digite um caractere: "); c = getche(); printf("\n\n\n"); printf("Inteiro: %d \nDecimal: %f \n",x,y); printf("Palavra: %s \nCaractere: %c \n",str, c); system("pause"); } Tipo de variáveis • Para formatar as casas decimais: #include <stdio.h> main () { printf("\n%f",3456.7876543); printf("\n%.1f",3456.7876543); printf("\n%.2f",3456.7876543); printf("\n%.3f",3456.7876543); printf("\n"); system("pause"); } Operadores Operadores • Exemplo: #include <stdio.h> main () { int x, y; x=10; y=3; printf("A soma de %d por %d e %d \n",x,y,x+y); printf("A subtração de %d por %d e %d \n",x,y,x-y); printf("A multiplicacao de %d por %d e %d \n",x,y,x*y); system("pause"); } Operadores • Exemplo: #include <stdio.h> main () { int x, y; float resultado; float resultado2; x=10; y=3; resultado = (float) x/y; resultado2 = x%y; printf("A divisao de %d por %d e %.1f \n",x,y,resultado); printf("O resto da divisao de %d por %d e %.2f\n",x,y,resultado2); system("pause"); } Operadores Funções básicas printf(“Texto”) imprime na tela um conteúdo; scanf(“Tipo”,&variável) lê uma variável; Variável = getch() lê um caractere sem exibir na tela; Variável = getche() lê um caractere exibindo na tela; #include <stdio.h> main () { char x; printf("Digite o valor de x:"); x = getch(); printf("\n\n\nx = %c \n",x); printf("Digite o valor de x:"); x = getche(); printf("\n\n\nx = %c \n",x); system("pause"); } Funções básicas gets(variável) putchar(variável) toupper(variável) tolower(variável) lê uma variável texto; imprime um caractere; imprime caractere em maiúsculo; imprime caractere em minúsculo; #include <stdio.h> main () { char x[100]; printf("Digite o valor de x:"); gets(x); printf("\n\n\n\n"); putchar(x[0]); printf("\n\n\n\n%c",toupper(x[0])); printf("\n\n\n\n%c",tolower(x[0])); system("pause"); } Exemplos 1. Faça um programa em C que leia o nome e as idades de duas pessoas e mostre o nome das pessoas com a respectiva idade e então mostra a soma das idades. 1. Faça um programa em C que leia duas notas, os pesos de cada nota e mostre a média ponderada. Média Ponderada = (nota 1 * peso nota 1) + (nota 2 * peso nota 2) / soma dos pesos. Exemplos • Exemplo 1: #include <stdio.h> main () { char p1[100], p2[100]; int id1, id2; printf("Digite o nome da pessoa 1: "); scanf("%s",&p1); printf("Digite a idade da pessoa 1: "); scanf("%d",&id1); printf("\nDigite o nome da pessoa 2: "); scanf("%s",&p2); printf("Digite a idade da pessoa 2: "); scanf("%d",&id2); printf("\n\n%s: %d",p1,id1); printf("\n\n%s: %d",p2,id2); printf("\n\nSoma: %d",id1+id2); system("pause"); } Exemplos • Exemplo 2: #include <stdio.h> main () { float n1,n2,p1,p2; printf("Digite a nota 1: "); scanf("%f",&n1); printf("\nDigite o peso da nota 1: "); scanf("%f",&p1); printf("\nDigite a nota 2: "); scanf("%f",&n2); printf("\nDigite o peso da nota 2: "); scanf("%f",&p2); printf("\n\n"); printf("Media: %f",(n1*p1 + n2*p2)/(p1+p2)); system("pause"); } Exercícios 1) Faça um programa em C que leia dois números e mostre o produto desses números. 2) Faça um programa em C que leia dois números e troque o conteúdo destas variáveis entre si. Mostrar os novos conteúdos. 3) Faça um programa em C que leia três números, efetue o cálculo das expressões abaixo e mostre os resultados. (A – B) * C; (( x – 5) * y) – z. 4) Faça um programa em C que leia uma temperatura em graus Fahrenheit e converta / mostre em graus Centígrados. Centígrados = (Fahrenheit – 32) * 5 / 9. 5) Maria quer saber quantos litros de gasolina precisa colocar em seu carro e quanto vai gastar para fazer uma viagem até a casa de sua irmã. Faça um programa em C que leia: A distância da casa de Maria até sua irmã; O consumo do carro de Maria (KM rodados / litro); O preço da gasolina (litro). E mostre as informações que Maria necessita. 6) Faça um programa em C de auxilio para vendedores. A partir de um valor lido, mostrar: O total a pagar com desconto de 10%; O valor de cada parcela, no parcelamento de 3 x sem juros; A comissão do vendedor, no caso da venda ser a vista (5% sobre o valor com desconto); A comissão do vendedor, no caso da venda ser parcelada (5% sobre o valor total). Exercícios 7) Faça um programa em C que leia um valor inteiro em segundos, e converta / mostre no formato hh:mm:ss. 8) Faça um programa em C que leia quanto você ganha por hora e o número de horas trabalhadas no mês. Na seqüência, calcule e mostre o total do seu salário no referido mês. 9) Faça um programa em C para calcular a quantidade necessária de latas de tinta para pintar uma parede com X metros de largura por H metros de altura. Considere que o consumo de tinta por metro quadrado é 2.5 litros e a quantidade de tinta por lata é 8 litros. 10) Faça um programa em C que leia o salário bruto mensal de um funcionário, calcule e mostre os valores conforme modelo abaixo: