Atividade Prática no Ambiente Dev C++ Para as nossas atividades práticas vamos utilizar o ambiente de desenvolvimento da Linguagem C, Dev C++, ele é bastante fácil de utilizar e com muitos recursos. Segue uma sequência com as operações básicas para escrita, compilação e execução de programas, recomenda-se a leitura do material sobre a introdução à linguagem C postado no site do curso. Inicie o Dev-C++ pelo ícone ou pelo menu; Crie um novo arquivo, com o comando: Arquivo, Novo, Arquivo Fonte Edite as linhas do programa obedecente as regras da linguagem: o Área das Bibliotecas: Bibliotecas são arquivos contendo informações pré-definidas da linguagem (palavras reservadas como o “main”, “include” e outros) e também funções de uso gerais (“printf”, “scanf e outros”). Essas bibliotecas são inseridas no programa através da diretiva “Include”, conforme mostra o exemplo a seguir. o Corpo do Programa main() {...} Corresponde ao "corpo" do programa. É a partir dele que se inicia a execução do programa. o Comandos e Funções printf(...) Comando que indica "escreva o texto entre parêntesis através de um dispositivo de saída (neste caso, a saída padrão). "Olá, Mundo\n" Cadeia de caracteres (string). A seqüência de caracteres '\n' representa o caracter newline. #include <stdio.h> // Biblioteca com funções de entrada e saída de dados #include <stdlib.h> //Biblioteca com funções do sistema operacional main() //Início do programa { //limitador do corpo do programa printf ("Ola Mundo!\n"); //Função que mostra na tela uma mensagem system("PAUSE"); //Envia comando para o sistema operacional solicitando parada de execução do programa } //limitador do corpo do programa Salve o programa com o nome primeiro_programa 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. Se não houver erros, execute o programa com o comando: Executar, Executar ou com a tecla Ctrl-F10 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 Verifique também a linha anterior, que pode ser a responsável pelo erro, especialmente se faltar o ; Use comentários, iniciados por // 1 Fig.1 -Tela principal do Dev C++ Fig.2 –Tela mostrando como criar um novo programa 2 Fig.3 –Tela mostrando como salvar um programa editado Fig.4 -Tela mostrando como compilar e executar um programa editado 3 Fig.5 -Tela mostrando a compilação em progresso Fig.6 -Tela mostrando o resultado da execução do programa Quando é necessário imprimir na tela um dado, um valor, uma string ou mesmo um endereço de memória, usa-se a função printf(). Quando o programa usa a função printf(), as informações que instrui printf() a imprimir são chamadas parâmetros ou argumentos de printf(). A estrutura básica da função printf() é dada a seguir: printf ("string de controle", lista de argumentos); A seguir, uma tabela com os especificadores de formato: Código %c %d %i %e %E %f %g %G Significado Exibe um caractere Exibe um inteiro em formato decimal Exibe um inteiro Exibe um número em notação científica (com e minúsculo) Exibe um número em notação científica (com E maiúsculo) Exibe um ponto flutuante em formato decimal Usa %e ou %f, o que for menor O mesmo que %g, só que um E maiúsculo é usado se o formato %e 4 %o %s %u %x %X %% %p for escolhido Exibe um número em notação octal Exibe uma string Exibe um decimal sem sinal Exibe um número em hexadecimal com letras minúsculas Exibe um número em hexadecimal com letras maiúsculas Exibe um sinal de % Exibe um ponteiro A função scanf( ) é uma das funções de entrada de dados da Linguagem C, que pode ser usada para ler virtualmente qualquer tipo de dado inserido por meio do teclado, freqüentemente ela é usada para a entrada de números inteiros ou de ponto flutuante. A forma geral da função scanf( ) é: scanf (“string de controle”, lista de argumentos); Os especificadores de formato de entrada são precedidos por um sinal % e dizem à função scanf( ) qual tipo de dado deve ser lido em seguida. Esses códigos são listados na tabela a seguir. Código %c %d %i %u %e %f %g %o %s %x %p Significado Lê um único caractere Lê um decimal inteiro Lê um decimal inteiro (não pode ser octal ou hexadecimal) Lê um decimal sem sinal Lê um número em ponto flutuante com sinal opcional Lê um número em ponto flutuante com ponto opcional Lê um número em ponto flutuante com expoente opcional (double) Lê um número em base octal Lê uma string Lê um número em base hexadecimal Lê um ponteiro A função getch() lê o caracter do teclado mas não imprime o caracter lido na tela. Esta função não aceita argumentos e devolve o caracter lido para a função que a chamou. Exercícios – Copiar estes programas para o ambiente Dev C++, analisar a sua sequência lógica e analisar o seu funcionamento, compilando e executando. 11) Cálculo do Peso Ideal – Exemplo de expressão aritmética //Este programa determina o "peso ideal" de uma pessoa a partir da sua altura. //Trata-se apenas de um exemplo de programação - não segue nenhuma orientação médica. #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional main( ) //Início do programa em C { int altura; //Declara uma variável para altura */ int peso; //Declara uma variável para peso printf("Altura em centimetros (entre 120 e 200):"); //Mostra na tela a mensagem para entrar com um valor de "altura" 5 scanf("%d",&altura); //Função que espera um valor pelo teclado peso = (altura-119)*5/8+45; //Calcula o peso considerando a altura proposta printf("Peso ideal: %d \n",peso); //Mostra na tela o Peso Ideal da pessoa system("PAUSE"); //Função de Pausa do sistema operacional } //Fim do programa em C 12) Entrada de Dados //Este Programa mostra como entrar com dados pelo teclado #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional main( ) //Início do programa em C { char n1, n2, n3; //Declarar variáveis do tipo caracter scanf ("%c", &n1); //Aguarda da entrada de um valor pelo teclado scanf ("%c", &n2); //Aguarda da entrada de um valor pelo teclado scanf ("%c", &n3); //Aguarda da entrada de um valor pelo teclado printf ("%c %c %c\n", n1, n2, n3); //Mostra na tela os velores das variáveis system("PAUSE"); //Função de Pausa do sistema operacional } //Fim do programa em C 13) A ação do comando incremento e a sua exibição //Este programa mostra a ação do comando incremento e exibe na tela o resultado #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional main( ) //Início do programa em C { int x=0; //Declaração de uma variável e atribuição de valor printf("Comando (x++) incrementa a variavel depois de mostrar na tela: x= %d\n",x++); //Mostra o valor da variável e executa o incremento printf("Proximo valor da variavel: x= %d\n",x); //Mostra o valor da variável printf("Comando (++x) incrementa antes de mostrar na tela: x= %d\n",++x); //Incrementa o valor da variável e mostra o valor printf("Proximo valor da variavel: x= %d\n",x); //Mostra o valor da variável system("PAUSE"); } 14) Controle de Fluxo - Laço FOR – Exemplo 1 //Este programa mostra a ação do laço "FOR" #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional # define N 10 //Declaração de uma constante main( ) //Início do programa em C { 6 int s,i; //Declaração de uma variável s = 0; //Atribui um valor a uma variável for(i=1; i <= N; ++i) s+=i; //Declaração de um laço "FOR //(incia a variavel "i" de controle do laço; verifica a condição final do laço "i>N" ; dá a sequência do laço "++i") // A a expressão (s+=i) é igual a (s=s+i) printf("A soma de 1 a %d eh %d\n",N,s); //Mostra o resultado do laço system("PAUSE"); //Função de Pausa do sistema operacional } //Fim do programa em C 11) Controle de Fluxo - Laço FOR – Exemplo2 //Este programa mostra a ação do laço "FOR" #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional main( ) //Início do programa em C { int x,y; //Declaração de Variáveis for (x=0,y=0;x+y<100;++x,++y) //Declaração de um laço "FOR //(incia as variaveis "i" e "y" de controle do laço; verifica a condição final do laço "(x+y)>100" ; //da a sequência do laço "++i" e ++y) printf("%d ",x+y); //Mostra o resultado do laço system("PAUSE"); //Função de Pausa do sistema operacional } //Fim do programa em C 12) Controle de Fluxo “SE” //Este programa mostra a ação do Controle de Fluxo "SE" #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional main( ) //Início do programa em C { int a,b; //Declaração de Variávies printf("digite dois Numeros:"); //Mostra na tela a mensagem scanf("%d %d",&a,&b); //Aguarda entrada de dado pelo teclado if (b) printf("%d\n",a/b); //SE o valor da variável "b" for diferente de "ZERO", ENTÂO mostra na tela //o valor do resultado da divisão entre "a" e "b". else printf("divisao por zero\n"); //SE NÂO Mostra na tela a mensagem system("PAUSE"); //Função de Pausa do sistema operacional } //Fim do programa em C 13) Controle de Fluxo “SE” – “SENÂO” – “SE” //Este programa mostra a ação do Controle de Fluxo "SE" - "SENÃO" - "SE" #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional #include <time.h> // biblioteca com funções de marcação de tempo main( ) //Início do programa em C 7 { int num,segredo; //Declaração de variáveis srand(time(NULL)); //Configura o tempo de Pesquisa de um número aleatório segredo=rand()/100; //Guardo em uma variável o resultado da pesquisa de um número aleatório printf("Qual e o numero: "); //Mostra na tela a mensagem scanf("%d",&num); //Entra com um dado pelo teclado if (segredo==num) //Laço "SE" printf("Acertou!"); //"ENTÂO" Mostra na tela "SE" o númro teclado for igual ao número alaatório else if (segredo<num) //"SENÂO" "SE" o número aleatório for menor que o número teclado printf("Errado, muito alto!\n"); //"ENTÂO" mostra a mensagem: "Errado, muito alto" else printf("Errado, muito baixo!\n"); //"SENÂO" mostra a mesnagem: "Errado, muito baixo" printf("O numero eh %d\n",segredo); //Mostra na tela o número aleatório system("PAUSE"); //Função de Pausa do sistema operacional } //Fim do programa em C 14) Controle de Fluxo “ENQUANTO” //Este programa mostra a ação do Controle de Fluxo "ENQUANTO" #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional main( ) //Início do programa em C { char ch; //Declaração de variável while(ch!='a') ch=getchar(); //Fica no laço "ENQUANTO" a variável "ch" diferente da letra 'a', lê tecla system("PAUSE"); //Função de Pausa do sistema operacional } //Fim do programa em C 11) Controle de Fluxo “ FAZ ENQUANTO” //Este programa mostra a ação do Controle de Fluxo "FAZ" "ENQUANTO" #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional main( ) //Início do programa em C { char ch; //Declaração de variável printf("1. inclusao\n"); //Mostra na tela a mensagem printf("2. alteracao\n"); //Mostra na tela a mensagem printf("3. exclusao\n"); //Mostra na tela a mensagem printf(" Digite sua opção:"); //Mostra na tela a mensagem do //"FAZ" a seguinte operação { ch=getchar(); //Lê um valor no taclado switch(ch) //Seleciona o valor da variável "ch" { case '1': //caso a variável "ch" for '1' printf("escolheu inclusao\n"); //Mostra na tela amensagem break; //quebra o fluxo case '2': //caso a variável "ch" for '2' 8 printf("escolheu alteracao\n"); //Mostra na tela amensagem break; //quebra o fluxo case '3': //caso a variável "ch" for '3' printf("escolheu exclusao\n"); //Mostra na tela amensagem break; //quebra o fluxo case '4': //caso a variável "ch" for '4' printf("sair\n"); //Mostra na tela amensagem } } while(ch!='1' && ch!='2' && ch!='3' && ch!='4'); //"ENQUANTO" as condições entre parenteses não forem verdadeiros //Fica no laço enquanto a variável "ch" for diferente de ´1' ou //´2´ ou ´3´ ou ´4 system("PAUSE"); //Função de Pausa do sistema operacional } //Fim do programa em C 12) Controle de Fluxo “SELEÇÃO” //Este programa mostra a ação do Controle de Fluxo "SELEÇÂO" #include <stdio.h> //biblioteca com funções de Entrada e Saída #include <stdlib.h> // biblioteca com funções de sistema Operacional main( ) //Início do programa em C { char x; //Declaração de variável printf("1. inclusao\n"); //Mostra na tela a mensagem printf("2. alteracao\n"); //Mostra na tela a mensagem printf("3. exclusao\n"); //Mostra na tela a mensagem printf(" Digite sua opcao:"); //Mostra na tela a mensagem x=getchar(); //Lê um valor no taclado switch(x) //Seleciona o valor da variável "x" { case '1': //caso a variável "x" for '1' printf("escolheu inclusao\n"); //Mostra na tela a mensagem break; //quebra o fluxo case '2': //caso a variável "x" for '2' printf("escolheu alteracao\n"); //Mostra na tela a mensagem break; //quebra o fluxo case '3': //caso a variável "x" for '3' printf("escolheu exclusao\n"); //Mostra na tela a mensagem break; //quebra o fluxo default: //caso a variável "x" for qualquer outro printf("opcao invalida\n"); //Mostra na tela a mensagem } system("PAUSE"); //Função de Pausa do sistema operacional } //Fim do programa em C 9