3 – O Primeiro Programa em C Unesp – Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro Unesp-Campus de Guaratinguetá 3 – O Primeiro Programa em C 3.1 - Introdução Depois dos conceitos apresentados anteriormente, vamos fazer nosso primeiro programa em C. Precisamos então, conhecer algumas regras básicas de programação em C, tais como: como criar um programa principal, como escrever as instruções, como marcar o inicio e o fim do programa. 1o. Programa em C 2 Unesp-Campus de Guaratinguetá 3 – O Primeiro Programa em C 3.2 – Programa: Definição Programa informático Seqüência de instruções, organizadas de modo a resolver determinados problemas. As instruções são dadas através de códigos Cada linguagem de programação possui uma sintaxe (código). De modo geral um programa em C é composto de uma parte principal, chamado programa principal, e de vários subprogramas que também são chamados de funções. 1o. Programa em C 3 Unesp-Campus de Guaratinguetá 3.2 – Programa: Definição O programa principal é executado em primeiro lugar e coordena a execução das demais funções (subprogramas). Na Linguagem C o Programa Principal é também considerado como uma função Cada função do programa deve receber um nome que pode ser escolhido pelo programador. O programa principal deve obrigatoriamente receber o nome de main( ). 1o. Programa em C 4 Unesp-Campus de Guaratinguetá 3.2 – Programa: Definição A sintaxe do programa principal em C é: main () Obs: A palavra main deve { ser escrita com letra minúscula. <Instruções> } O Lembre-se que em C main ≠ Main ≠MAIN programa principal se compõe de um cabeçalho “main ()” seguido de um “corpo” que contém o conjunto de instruções que devem ser executadas. 1o. Programa em C 5 Unesp-Campus de Guaratinguetá 3.2 – Programa: Definição As chaves servem para marcar o inicio ( { ) e o } ) de um conjunto deoinstruções. fim( As chaves servem para marcar inicio ( { ) e o fim( } ) de um conjunto de instruções. Um programa bem escrito deve ter boa apresentação Um programa bem escrito deve ter boa apresentação e e seu aspecto deve ressaltar a seu aspecto deve ressaltar a estrutura da sua execução. estrutura da sua execução. Por essa razão deve-se colocar as chaves que iniciam uma instrução Por essa deve-se colocar as (}) chaves que a ({)razão na mesma coluna da chave que encerra instrução. iniciam uma instrução ({) na mesma coluna da chave (}) que encerra a instrução. 1o. Programa em C 6 Unesp-Campus de Guaratinguetá 3 – O Primeiro Programa em C 3.3 - Primeiras Instruções em C 1) printf(<texto>); onde <texto> representa um texto qualquer colocado entre aspas. OBS: O ponto e virgula (;) é colocado no final de cada instrução e serve como separador. Exemplos: printf(“Estou muito feliz. Passei no vestibular”); printf(“Bom dia! Tudo Bem ?”); 1o. Programa em C 7 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C 2) System(“pause”); Está instrução interrompe a execução do programa e escreve a seguinte mensagem: “pressione qualquer tecla para continuar...” A execução do programa será retomada quando o usuário pressionar alguma tecla. 1o. Programa em C 8 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Vamos então escrever o nosso primeiro Programa em C: prog01 1. #include<stdio.h> 2. #include<stdlib.h> 3. main( ) 4. { 5. printf (“Bom dia! Tudo bem? \n” ); 6. system(“pause”); 7. } OBS: Os números na frente de cada linha não fazem parte do programa. Eles foram colocados para facilitar a localização dos códigos 1o. Programa em C 9 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Ao ser executado, este programa vai escrever a seguinte mensagem na tela do DOS: No programa prog01 observe que: 1o. Programa em C 10 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Na linha 1 a instrução #include<stdio.h> indica ao que o programa fonte vai utilizar a instrução da biblioteca stdio.h. A função printf pertence a essa biblioteca. Na linha 2 a instrução #include<stdlib.h> indica ao que o programa fonte vai utilizar a instrução da biblioteca stdlib.h. A função system(“pause”) pertence a essa biblioteca. Na linha 4, a seqüência \n é um caractere de controle que faz com que o cursor mude para a linha de baixo. Sem o \n a mensagem apareceria na tela do seguinte modo: Bom dia! Tudo bem? Pressione qualquer tecla para continuar. . . 1o. Programa em C 11 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Se na linha 4 fossem colocados \n\n, o cursor pularia duas linhas, e a tela ficaria como mostrado abaixo: Se na linha 5 não fosse colocado system (“pause”) o programa iria rodar, escrever na janela do DOS e a seguir iria fechá-la tão rapidamente que seria impossível ver o que foi escrito. O comando system(“pause”) não permite que a janela do DOS se feche e deste modo pode-se ler o que foi escrito na mesma. 1o. Programa em C 12 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C O mesmo programa poderia ser escrito como mostrado abaixo, e o resultado obtido seria o mesmo do programa anterior. prog02 1. #include<stdio.h> 2. #include<stdlib.h> 3. main( ) 4. { 5. printf (“Bom dia! “); 6. printf(“ ” ); 7. printf(“Tudo bem? \n” ); No programa 02 a função printf é chamada várias vezes. Como não se colocou o caractere \n no final de cada printf a frase “Bom dia! Tudo bem?” será escrita na mesma linha. 8. printf(“ \n” ); 9. system(“pause”); 10. } 1o. Programa em C 13 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C 3) puts(<texto>); onde <texto> representa um texto qualquer colocado entre aspas. Exemplos: puts(“Estou gostanto de aprender Computação”); puts(“Bom dia! Tudo Bem ?”); A função puts, imprime o texto entre aspas e automaticamente faz o cursor pular uma linha. Com ela não é preciso usar o caractere \n 1o. Programa em C 14 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C A adição do caractere \n na função puts faz com que o cursor pule duas linhas. O primeiro pulo é devido a função puts e o segundo pulo é por causa do \n Exemplo: Re-escrever o programa Prog02, usando a função puts 1o. Programa em C 15 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Prog02 com o puts Resultado com o puts #include<stdio.h> #include<stdlib.h> main( ) { puts ("Bom dia! "); puts("Tudo bem? " ); system(" pause"); } 1o. Programa em C 16 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Exercício 1 Solução 1 #include<stdio.h> Escreva um programa em C que tenha exatamente a #include<stdlib.h> main( ) saída mostrada abaixo : A linguagem C eh a mais usada por quem sabe programar. { printf ("\nA linguagem C\n"); printf("eh a mais usada\n" ); printf("por quem sabe \n" ); printf("programar\n\n" ); system("pause"); } 1o. Programa em C 17 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Ao se executar o programa, irá aparecer a seguinte tela no computador. 1o. Programa em C 18 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Exercício 2: Reescrever o programa anterior usando somente 1 printf prog03 solução 2 1. #include<stdio.h> 2. #include<stdlib.h> 3. main( ) 4. { 5. printf (“A linguagem C\neh a mais usada\npor quem sabe \nprogramar\n\n” ); 6. system(“pause”); 7. } Observe que não é necessário espaço em branco antes ou depois do comando \n. Observe também que as aspas serve para delimitar um string. 1o. Programa em C 19 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C 4) O Caractere Especial (\) A questão que se coloca é RESPOSTA Como fazer para imprimir uma frase em que as aspas devem aparecer na frase impressa? Colocando-se uma barra \ antes das aspas que se pretende escrever Exemplo: Fazer um programa para escrever a seguinte frase: A primavera está “simplesmente” MARAVILHOSA. 1o. Programa em C 20 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C #include<stdio.h> #include<stdlib.h> main( ) { printf ("A primavera esta \"simplesmente\" MARAVILHOSA\n\n" ); system("pause"); } No programa acima o caractere \”serve para informar ao compilador que estas aspas não estão delimitando o comando printf. Logo, elas irão aparecer no texto RESUMINDO: O caractere \ é utilizado para retirar o significado especial que um caractere apresenta. No caso das aspas (“), é retirado o significado delimitador do printf e é considerado como aspas. 1o. Programa em C 21 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Ao se executar o programa anterior, irá aparecer a seguinte tela no computador. 1o. Programa em C 22 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C 4) /* Comentários */ Toda vez que se faz um programa deve-se colocar comentários indicando o que o programa faz, quem é o autor do programa, etc. Esses comentários não devem ser levados em conta pelo compilador pois eles tem a finalidade de documentar o programa. Um comentário em C é qualquer conjunto de caracteres delimitado pelos sinais /* e */ ou após os sinais //. Exemplo: /* Prog 03.C : */ /* autor: CASSILDA RIBEIRO */ /* data: 10/03/2008 */ 1o. Programa em C 23 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Um comentário pode se estender por mais de uma linha, como mostram os exemplos a seguir: 1) /* prog 04.c * autor: CASSILDA RIBEIRO * data: 10/03/2009 */ 2) /************************************* * prog 05.c * * autor: CASSILDA RIBEIRO * * data: 10/03/2009 Obs: Os asteriscos horizontais ou verticais sevem apenas para dar uma estética ao comentário. O que importa é que o compilador ignora tudo que está entre os símbolos /* e */ * ***************************************/ 1o. Programa em C 24 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C 3) // prog 06.c // autor: Carmem Lúcia // data: 10/03/2009 // Obs: As duas baras (//) são colocadas na frente de cada frase. O compilador irá ignorar tudo o que vier escrito, na linha, logo após as barras. 4) //************************************* // prog 07.c * // autor: CASSILDA RIBEIRO * // data: 10/03/2009 * //************************************* 1o. Programa em C 25 Unesp-Campus de Guaratinguetá 3.3 - Primeiras Instruções em C Os comentários podem ser colocados em qualquer parte do programa. Existem contudo duas exceções a saber: 1) Comentário dentro de outro comentário não é permitido pelo compilador. 2) Dentro do printf os caracteres /* e */ perdem seu significado especial e são considerados como caracteres normais. Ex: printf(“um comentario em C deve vir entre /* e*/”); A saída será: um comentario em C deve vir entre /* e*/ 1o. Programa em C 26 Unesp-Campus de Guaratinguetá 3.4 Resumo do Capítulo ► Um programa em C começa com as declarações de biblioteca, por exemplo #include<stdio.h> e #include<stdlib.h>, seguido da função main( ). A função main( ) deve estar em todos os programas. ► Os comandos ou instruções a serem executados devem ser colocado entre chaves{ } ► Um bloco é qualquer conjunto de instruções entre { }. ► Cada instrução deve ser seguido de ponto e virgula (;). 1o. Programa em C 27 Unesp-Campus de Guaratinguetá 3.4 Resumo do Capítulo A disposição do código é arbitraria e depende do gosto do programador. A linguagem C é CASE SENSITIVE Os strings em C são delimitados por aspas As mensagems são escritas usando a função printf( ) e puts() As funções printf( ) e puts() não fazem parte da linguagem C. Elas pertencem a biblioteca stdio.h 1o. Programa em C 28 Unesp-Campus de Guaratinguetá 3.4 Resumo do Capítulo A função system(“pause”), durante a execução, faz com que a tela do DOS fique parada até que seja digitado um caractere qualquer. Ela pertence a biblioteca stdlib.h As linhas começadas por #, por ex: # include, #define, etc. não são C, mas sim diretivas ao pré processador e que por isso não terminam com ponto e virgula (;). Os comentários são escritos entre /* e */ ou após // . Eles são ignorados pelo compilador a menos que estejam dentro de um string. Não podem existir comentários dentro de comentários. 1o. Programa em C 29 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo 1 – Fazer um programa em C usando somente o printf, e que uma vez executado, mostre o seguinte na tela do DOS: Iniciais: __ __ Codigo?: __ __ Nascimento: __/__/_____ Numero de sorte:__ __\__ __ Texto: “__ __ __ __” 1o. Programa em C 30 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo SOLUÇÃO EX-1: /****************************** * Exercicio 1 capítulo 3 * * * *******************************/ #include<stdio.h> #include<stdlib.h> OBS: o caractere \\ dentro do main() comando printf serve para { que aparece a \ na frase: printf ("Iniciais:_ _\n\n”); Numero de sorte:_ _\_ _ printf(“Codigo?:_ _\n\n”); printf(“Nascimento:_ _/_ _/____\n”); printf(“Numero de sorte:_ _\\_ _\n”); printf(“Texto:\"_ _ _ _\"\n\n"); system("pause"); /*fim do programa*/ 1o. Programa em C } 31 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo Ao se executar o programa anterior, irá aparecer a seguinte tela no computador. 1o. Programa em C 32 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo O programa anterior poderia ser feito utilizando-se somente um printf, como mostrado a seguir: /********************************** * Exercicio 1 tópico 3 * * * ***********************************/ #include<stdio.h> #include<stdlib.h> main() { printf ("Iniciais:_ _\n\nCodigo?:_ _\n\nNascimento:_ _/_ _/____\nNumero de sorte:_ _\\_ _\nTexto:\"_ _ _ _\"\n\n"); system("pause"); /*fim do programa*/ } 1o. Programa em C 33 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo 2 – Fazer um programa em C que apresente 2 linhas com a frase “Olha o apito do trem!”, ouvindo-se um apito ao final de cada string. ********************************** SOLUÇÃO * Exercicio 2 tópico 3 * * * ***********************************/ #include<stdio.h> #include<stdlib.h> main( ) { printf ("Olha o apito do trem\a\a\n"); /* aqui o \a faz o sinal sonoro*/ printf ("Olha o apito do trem\7\n"); /* aqui o \7 também faz sinal sonoro*/ system("pause"); } /*fim do programa*/ 1o. Programa em C 34 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo Ao executar este programa, irá aparecer a seguinte tela no computador, com um sinal sonoro após escrever cada linha. 1o. Programa em C 35 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo 3- Escreva um programa em C que apresente a seguinte saída: 1– Clientes 2– Fornecedores 3– Faturas 0– Sair OBS: O caractere \t é o responsável por fazer a tabulação /******************************** * Exercicio:3 tópico 3 * * * ********************************/ #include<stdio.h> #include<stdlib.h> main() { printf("1- \tClientes\n"); printf("2- \tFornecedores\n"); printf("3- \tFaturas\n\n\n"); printf("0- \tsair\n\n"); system("pause"); /*fim do programa*/ } 1o. Programa em C 36 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo Ao se executar o programa anterior, irá aparecer a seguinte tela no computador. 1o. Programa em C 37 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo 4- Indique os erros de compilação que seriam detectados nos seguintes programa 4.1) /* * copyright: Asneira Suprema!!! */ #include<stdio.h> 4.2) /* * copyright: Asneira Suprema!!! */ #include<stdio.h> #include<stdlib.h> #include<stdlib.h> Main() { printf(“Hello World”); system("pause"); } main { printf(“Hello World”); system("pause"); } A função main deve ser escrita com letra minúscula Faltou parêntese na função main 1o. Programa em C 38 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo 4.3) /* * copyright: Asneira Suprema!!! */ #include<stdio.h> main() { print(“Hello World”); system("pause"); } O comando correto é printf e não somente print e faltou a biblioteca #include<stdlib.h>. 4.4) /* * copyright: Asneira Suprema!!! */ #include<stdio.h> #include<stdlib.h> main() { printf(“Hello World”); system("pause"); Faltou chave no fim do programa 1o. Programa em C 39 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo 5. Fazer um programa em C usando somente o puts. Faça o programa imprimir “Hello World” com uma mensagem de texto explicando que o mesmo foi feito usando a função puts no lugar do printf. Solução Exercício 5 1o. Programa em C 40 Unesp-Campus de Guaratinguetá Solução Exercício 5 /************************************************** * Exercício 5 tópico 3 * Usar função puts no lugar de printf para imprimir. * A função puts imprime e pula linha. * O printf imprime e continua na mesma linha. * copyright: Asneira Pura!!! ***************************************************/ #include<stdio.h> #include<stdlib.h> main() { puts("Hello World");//aqui estamos usando a função //puts no lugar do printf() puts(""); puts("Isso foi impresso com o puts ao inves do printf"); puts("O puts escreve e ja muda de linha"); puts(""); system("pause"); } 1o. Programa em C 41 Unesp-Campus de Guaratinguetá 3.5 Exercícios do Capítulo Ao ser executado, o programa anterior vai escrever a seguinte mensagem na tela 1o. Programa em C 42 Unesp-Campus de Guaratinguetá 3 – O Primeiro Programa em C FIM Tópico 3 Prof. Aníbal Tavares Profa. Cassilda Ribeiro 1o. Programa em C 43