Linguagem C Criada por Dennis M. Ritchie e Ken Thompson no Laboratório Bell em 1972. A Linguagem C foi baseada na Linguagem B criada por Thompson. C é uma linguagem utilizada para programação de qualquer tipo de sistema como Sistemas Operacionais (Linux, Unix), Planilhas, Processadores de Texto, etc. Compiladores e Interpretadores A maneira de se comunicar com o computador chama-se programa e a única linguagem que o computador entende chama-se linguagem de máquina. Portanto todos os programas que se comunicam com a máquina devem estar em linguagem de máquina. Há duas formas de tradução: Interpretadores: lê a primeira instrução do programa, faz uma consistência de sua sintaxe e se não houver erro converte-a para uma linguagem de máquina para executá-la. Segue, então, para a próxima instrução, repetindo o processo até que a última instrução seja executada ou a consistência aponte algum erro. O interpretador precisa estar presente todas as vezes que vamos executar o programa e trabalho de checagem e tradução deverá ser repetido. Compiladores: lê a primeira instrução do programa, faz uma consistência de sua sintaxe e se não houver erro converte-a para a linguagem de máquina, e em vez de executá-la, segue para a próxima instrução repetindo o processo até que a última instrução seja atingida ou a consistência aponte um erro. Se não houver erros ele gera um programa em disco com o sufixo.obj com as instruções já traduzidas. Depois o linkeditor agrega rotinas em linguagem de máquina que lhe permitirão a execução criando em disco o.exe (este não pode ser alterado). DEVC++ Criar um Programa Clique no botão para criar um novo projeto, conforme figura 1(a). Selecione o tipo de aplicação a ser desenvolvida, Console Application, a linguagem de programação, C Project, e o nome do projeto, conforme figura 1(b). Finalmente, escolha o diretório onde os arquivos do projeto serão armazenados.
(a) Criação do projeto. (b) Escolha do tipo de aplicação (console), linguagem (C) e nome do projeto. (c) Escolha do diretório do projeto. Figura 1 - Criação de novo projeto. Disciplina: Programação Estruturada 1
O Dev-C++ preenche já um código que normalmente você vai precisar para testar/rodar o seu programa em consoles do MS Windows. Como indica a figura 2. Figura 2 - Preenchimento automático do arquivo fonte pelo Dev-C++. Compilação e execução Para compilar o arquivo fonte feito clique no botão de compilação conforme a figura 3 (a). Durante a compilação, aparece a janela da figura 3 (b). Ao final da compilação, a janela deve estar igual à figura. Em particular, os campos Errors e Warnings devem estar com o valor 0. Se não, olhe na aba de Log o erro, ou o aviso, e corrija seu código para eliminá-lo. Feche a janela de compilação. (a) Botão para compilar o projeto. (b) Compilação bem sucedida do projeto. Figura 3 - Compilação projeto. Observação: Ao rodar este programa pelo sistema de janelas do MS Windows clicando no seu ícone, você vai fazer com que o MS Windows crie uma janela DOS para rodar o Disciplina: Programação Estruturada 2
programa, execute o programa e feche a janela depois que o programa terminou. Na maioria dos computadores novos, isto se passa tão rápido que você pode nem perceber que ele rodou. É por esta razão que o Dev-C++ já incluiu no código de novos projetos a chamada da função system() com o argumento "PAUSE" que provoca uma parada antes do término do programa para que o usuário do sistema de janelas possa ver o resultado do programa. Se você quiser, use o system("pause"). Mas lembre-se de contar para o compilador onde estão as definições necessárias para usar esta função: Insira um #include <stdlib.h>. Code::Blocks Uma vez obtida a tela inicial do Code::Blocks clique em File > New > File... conforme ilustrado abaixo. Na próxima janela, escolha C/C++ source e clique em Go. Disciplina: Programação Estruturada 3
Clique em Next para as duas próximas janelas, em especial para a segunda janela a seguir, se certifique que linguagem selecionada é a C. Na janela a seguir, digite um nome para o arquivo de programa a ser digitado. Para tanto, clique no quadrado com... que aparece ao lado da caixa com título Filename with full path: e digite um nome de arquivo. Disciplina: Programação Estruturada 4
Clique agora em Salvar e depois em Finish. Na janela que foi criada você vai digitar, compilar e executar seu primeiro programa em C. Vamos compilar o seu programa. Você deve clicar em Build > Compile current file Disciplina: Programação Estruturada 5
se tudo der certo, na janela de log abaixo do programa, haverá a indicação de que o programa foi compilado com sucesso: 0 errors, 0 warnings Com o programa compilado sem erros, a pasta onde foi salvo o arquivo contém agora o programa executável ".exe." Para executar o programa clique no botão Build > Run da janela principal do Code::Blocks. Deverá surgir uma nova janela, de DOS, mostrando a execução de seu programa, como pode ser visto na figura abaixo. Note que na janela do DOS aparece a mensagem Disciplina: Programação Estruturada 6
Pressione qualquer tecla para continuar... Depois de conferir o resultado, pressione qualquer tecla para que a janela do DOS desapareça. Se a janela do DOS não desaparecer, para fechá-la clique no X, no canto superior direito da mesma. A estrutura Básica de um Programa Consiste em uma ou várias funções ou programas. main( ) // primeira função a ser executada // inicia a função // termina a função main( ): deve existir em algum lugar do programa, pois marca o início do programa. Primeiro Programa main ( ) printf( Primeiro Programa ); onde: printf( Primeiro Programa ); é uma instrução e as instruções em devem ser encerradas por ;. printf( ) é uma função de E/S (Entrada e Saída), em que no interior dos parenteses estão as informações passadas pelo programa, neste caso main( ), a função printf ( ), isto é, Primeiro Programa, que chamamos de argumento. Quando o programa encontra a linha printf( Primeiro Programa );, ele passa o controle para a função printf ( ), que irá imprimir na tela do computador e quando encerra a execução volta novamente para o programa. Sintaxe: printf( expressão de controle,lista de argumentos); Exemplo: main( ) printf( Este e o numero dois: %d,2); Saída: Este e o numero dois: 2 Disciplina: Programação Estruturada 7
Esta função printf ( ), ilustrada acima possui 2 argumetos, onde o primeiro é Este e o numero dois: %d e o segundo o 2, mas ela pode possuir vários argumentos, que devem ser separados por,. A expressão de controle pode conter caracteres que serão exibidos na tela e códigos de formatação que indicam o formato em que os argumentos devem ser impressos. Na função printf ( ), acima a expressão de controle é o %d, que solicita a printf ( ) que imprima o segundo argumento em formato decimal. Abaixo está listado algumas expressões de controle de printf ( ): Alguns códigos especiais: %c Caractere simples %d Decimal %f Ponto flutuante %s Cadeia de caracteres \n Nova linha \ Aspas \\ Barra /* Comentários %% % Constantes e Variáveis Constante é definido como um valor fixo e inalterável. Exemplo: 8, Primeiro Programa, x. Variáveis são espaços de memória reservados para armazenar um certo tipo de dado e tendo um nome referenciar o seu conteúdo, ou seja, espaço de memório que pode conter, a cada tempo, valores diferentes. Exemplo: main ( ) int num; num = 2; printf( Este e o numero dois: %d,num); Chamamos de declaração de variáveis uma instrução para reservar uma quantidade de memória apropriada para armazenar o tipo especificado e indicar que o seu conteúdo será referenciado pelo nome dado a esta variável, pois todas as variáveis devem ser declaradas antes de ser utilizadas. Existem alguns tipos de variáveis, que informam a quantidade de memória, em bytes, que esta irá ocupar e a forma como o conteúdo será armazenado: Disciplina: Programação Estruturada 8
Tipo char int float void Descrição equivale ao tipo caractere equivale ao tipo inteiro equivale ao tipo real tipo nenhum Exemplo: evento.c main ( ) int evento; char corrida; float tempo; evento = 5; corrida = c ; tempo = 27.25; printf("o tempo vitorioso na eliminatoria %c",corrida); printf("\n da competicao %d foi %f.",evento,tempo); Palavras-Chaves auto break case char const continue do double else enum extern float for goto if int long register return short signed sizeof static struct switch typedef union unsigned void volatile while Exercícios 1. Escreva um programa que contenha uma única instrução e imprima na tela: Esta e a linha um. Esta e a linha dois. 2. Escreva um programa que declare 3 variáveis inteiras e atribua os valores 1,2,3 a elas; 3 variáveis caracteres e atribua a elas as letras a,b,c; finalmente imprima na tela: As variaveis inteiras contem os numeros: 1, 2, 3. As variaveis caracteres contem os valores: a, b, c. Disciplina: Programação Estruturada 9
Função scanf( ) Função de E/S, que permite ler dados formatados da entrada padrão (teclado). Sintaxe: scanf ( expressão de controle, lista de argumentos); onde os argumentos devem ser endereços de variáveis. A expressão de controle deve conter códigos de formatação, precedidos por um sinal %. A lista de argumentos deve consistir somente nos endereços das variáveis. O operador de endereços &, é o endereço do operando. Exemplo: int n; /* variável n, do tipo inteiro n = 2; /* n recebe o valor 2 n /*se for referenciado assim retorna o valor 2 &n /*se for referenciado assim retorna o endereço onde n está guardado.*/ main() int num; num = 2; printf( Valor = %d, Endereço = %u, num, &num); Saída: Valor = 2, Endereço = 1370. A seguir estão alguns códigos de formatação da função scanf ( ): Código Função %c Leia um único caractere. %d Leia um inteiro decimal. %s Leia uma série de caracteres %f Leia um número em ponto flutuante. Exemplo: idade.c main() float anos, dias; printf( Digite a sua idade em anos: ); /*Necessário que digite [enter] para terminar a leitura*/ scanf( %f,&anos); dias = anos * 365;; printf ( Sua idade em dias e: %.0f.\n,dias); Em algumas situações a função scanf ( ) não se adapta perfeitamente pois você precisa pressionar [enter] depois de sua entrada para que scanf ( ) termine a leitura. Neste caso existem outras funções: 10
Operadores Aritméticos Os operadores aritméticos binários, ilustrados abaixo, são aqueles que operam sobre dois operandos: = Atribuição + Soma - Subtração * Multiplicação / Divisão % Módulo (devolve o resto da divisão) O operador unário, opera sobre um operando somente e é utilizado para indicar a troca de sinal. Exemplo: Outro exemplo: main() - Menos unário num = -1; num1 = - num; /* então, num1 = 1 int ftemp, ctemp; printf ( Digite a temperatura em graus Fahrenheit:"); scanf ( %d,&ftemp); ctemp = (ftemp 32) *5/9; printf( Temperatura em graus Celsius: %d,ctemp); Operadores de Incremento ( + + ) e Decremento ( -- ) + + Incrementa de 1 seu operando - - Decrementa de 1 seu operando Estes operadores trabalham de 2 modos: Pré-fixado: antes da variável. ++ n: incrementa antes da variável ser utilizada. Pós-fixado: depois da variável. n ++: incrementa depois da variável ser utilizada. 11
Exemplos: n = 5 x = n++; printf ( x = %d n = %d,x,n); Saída: x = 5 n = 6 n = 5 x = ++n; printf ( x = %d n = %d,x,n); Saída: x = 6 n = 6 Operadores de Atribuição ( + =, - =, * =, /=, %=) Os operadores são usados com um nome da variável à esquerda e uma expressão à direita. x: variável exp: expressão op: operador(+, -, *, / ou %) x op = exp equivale a x = (x) op (exp) Exemplos: i+ = 2 i = i + 2 x* = y + 1 x = x * (y+1) t/=2.5 t = t / 2.5 p% =5 p = p%5 d - =3 d = d 3 Operadores Relacionais São utilizados para fazer comparações. > Maior >= Maior ou igual < Menor <= Menor ou igual == Igualdade!= Diferente Observação: Variável booleana: assume V (verdadeiro) ou F (falso), ou seja, 1 se verdadeiro e 0 se falso. 12
Exemplo: main() Saída int verdade, falso; verdade = (15<20); falso = (15==20); printf( Verdadeiro = %d, Falso = %d, verdade, falso); Verdadeiro = 1, Falso = 0 Atenção: Operadores aritméticos tem prioridade aos operadores relacionais. Comentários /*Comentários ou /*Comentários Comentários*/ Exercícios 1. Escreva um programa no qual você digita o ano de nascimento e ele te informa quantos anos você tem ou vai fazer neste ano. 2. Escreva um programa que solicite 3 números em ponto flutuante e imprima a média aritmética. 3. Escreva um programa que receba 4 números inteiros, calcule e mostre a soma desses números. 4. Faça um programa que receba 3 notas, calcule e mostre a média aritmética entre elas. 5. Faça um programa que receba o salário de um funcionário, calcule e mostre o novo salário, sabendo-se que este sofreu um aumento de 25%. 6. Faça um programa que calcule e mostre a área de um triângulo. Sabe-se que: Área = (base * altura)/2 7. Faça um programa que calcule e mostre a área de um círculo. Sabe-se que: A = R 2 e = 3,1415 8. Faça um programa que receba o custo de um espetáculo teatral e o preço do convite desse espetáculo. Esse programa deve calcular e mostrar a quantidade de convites que devem ser vendidos para que pelo menos o custo do espetáculo seja alcançado. 9. Faça um programa que receba o preço de um produto, calcule e mostre o novo preço, sabendo-se que este sofreu um desconto de 10%. 10. Faça um programa que calcule e mostre a área de um quadrado. Sabe-se que: A = lado * lado. 13