3 O Primeiro Programa em C Unesp Campus de Guaratinguetá Curso de Programação Computadores Prof. Aníbal Tavares Profa. Cassilda Ribeiro 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
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 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
3.2 Programa: Definição A sintaxe do programa principal em C é: main () <Instruções> } Obs: A palavra main deve ser escrita com letra minúscula. Lembre-se que em C main Main MAIN O 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 3.2 Programa: Definição As chaves servem para marcar o inicio ( ) e o fim( } ) de um conjunto de instruções. As chaves servem para marcar o inicio ( ) e o fim( } ) de um conjunto de instruções. Um programa bem escrito deve ter boa Um programa bem escrito deve ter boa apresentação e apresentação 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 () razão na mesma deve-se coluna colocar da chave as (}) chaves que encerra que a instrução. iniciam uma instrução () na mesma coluna da chave (}) que encerra a instrução. 1o. Programa em C 6
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: 3 O Primeiro Programa em C printf( Estou muito feliz. Passei no vestibular ); printf( Bom dia! Tudo Bem? ); 1o. Programa em C 7 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
Vamos então escrever o nosso primeiro Programa em C: prog01 1. 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 Ao ser executado, este programa vai escrever a seguinte mensagem na tela do DOS: No programa prog01 observe que: 1o. Programa em C 10
Na linha 1 a instrução 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 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
O mesmo programa poderia ser escrito como mostrado abaixo, e o resultado obtido seria o mesmo do programa anterior. prog02 1. 2. #include<stdlib.h> 3. main( ) 4. 5. printf ( Bom dia! ); 6. printf( ); 7. printf( Tudo bem? \n ); 8. printf( \n ); 9. system( pause ); 10. } 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. 1o. Programa em C 13 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
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 Prog02 com o puts #include<stdlib.h> main( ) puts ("Bom dia! "); puts("tudo bem? " ); system(" pause"); } Resultado com o puts 1o. Programa em C 16
Exercício 1 Solução 1 Escreva um programa em C que tenha exatamente a saída mostrada abaixo : A linguagem C eh a mais usada por quem sabe programar. #include<stdlib.h> main( ) 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 Ao se executar o programa, irá aparecer a seguinte tela no computador. 1o. Programa em C 18
1. 2. #include<stdlib.h> 3. main( ) 4. prog03 solução 2 5. printf ( A linguagem C\neh a mais usada\npor quem sabe \nprogramar\n\n ); 6. system( pause ); 7. } Exercício 2: Reescrever o programa anterior usando somente 1 printf 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 4) O Caractere Especial (\) A questão que se coloca é Como fazer para imprimir uma frase em que as aspas devem aparecer na frase impressa? RESPOSTA 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
#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 Ao se executar o programa anterior, irá aparecer a seguinte tela no computador. 1o. Programa em C 22
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 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
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 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
3.4 Resumo do Capítulo Um programa em C começa com as declarações de biblioteca, por exemplo 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 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
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 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
SOLUÇÃO EX-1: /****************************** * Exercicio 1 capítulo 3 * * * *******************************/ #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 Ao se executar o programa anterior, irá aparecer a seguinte tela no computador. 1o. Programa em C 32
O programa anterior poderia ser feito utilizando-se somente um printf, como mostrado a seguir: /********************************** * Exercicio 1 tópico 3 * * * ***********************************/ #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 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<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
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 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<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
Ao se executar o programa anterior, irá aparecer a seguinte tela no computador. 1o. Programa em C 37 4- Indique os erros de compilação que seriam detectados nos seguintes programa 4.1) /* 4.2) /* * copyright: Asneira Suprema!!! * copyright: Asneira Suprema!!! * / * / #include<stdlib.h> #include<stdlib.h> Main() main printf( Hello World ); printf( Hello World ); system("pause"); system("pause"); } } A função main deve ser escrita Faltou parêntese na função main com letra minúscula 1o. Programa em C 38
4.3) /* * copyright: Asneira Suprema!!! * / main() print( Hello World ); system("pause"); } 4.4) /* * copyright: Asneira Suprema!!! * / #include<stdlib.h> main() printf( Hello World ); system("pause"); O comando correto é printf e não somente print e faltou a biblioteca #include<stdlib.h>. Faltou chave no fim do programa 1o. Programa em C 39 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
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<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 Ao ser executado, o programa anterior vai escrever a seguinte mensagem na tela 1o. Programa em C 42
3 O Primeiro Programa em C FIM Tópico 3 Prof. Aníbal Tavares Profa. Cassilda Ribeiro 1o. Programa em C 43