• Nenhum resultado encontrado

Aula 02 Introducao ao C

N/A
N/A
Protected

Academic year: 2021

Share "Aula 02 Introducao ao C"

Copied!
9
0
0

Texto

(1)

Linguagem de Progamação C Introdução

C é uma linguagem de programação genérica. Não é uma linguagem específica para uma determinada área de aplicação em particular. Apresenta características das linguagens de alto e de baixo nível. Originalmente foi projetada para ser implementada no sistema Unix, no PDP11 da DEC, na década de 70. Foi inventada para implementar o sistema operacional Unix.

O American National Standards Institute (ANSI) definiu uma versão padrão da linguagem, conhecida como ANSI C. É interessante que os programas sejam desenvolvidos neste padrão para aumentar a sua portabilidade.

É uma linguagem semelhante ao Pascal e ao Fortran: valores são armazenados em variáveis; os programas são estruturados através da definição e da chamada de funções; o fluxo do programa é controlado através de loops, ifs e chamadas de funções; a entrada e saída pode ser feita com o terminal ou com arquivos; dados relacionados podem ser armazenados em vetores ou estruturas; utiliza ponteiros para variáveis.

C é uma linguagem compilada, isto é, o código fonte é inteiramente transformado para um código executável antes de ser executado. Na verdade o desenvolvimento de um programa em C apresenta 4 fases distintas: edição, compilação, ligação (linking) e execução. Muitas vezes, o ambiente de programação integra estas 4 fases.

a) Edição

É necessário que o código fonte (código na linguagem C) seja digitado em um editor de textos. Este código será salvo com um nome qualquer que possua a extensão ".c". Para códigos em c++ utiliza-se a extensão ".cpp".

O Turbo C já possui um editor. b) Compilação

O código fonte tem de ser transformado para uma linguagem que o processador entenda, que é a linguagem de máquina. Quem realiza esta tarefa é o compilador. Esta fase não produz um código totalmente pronto “.exe”. Produz um código objeto intermediário que apresenta, geralmente, a extensão ".obj".

c) Ligação (linking)

O C, como muitas linguagens compiladas, apresenta uma série de rotinas prontas que podem ser utilizadas pelos programadores. Estas rotinas encontram-se em bibliotecas. Estas bibliotecas são códigos objetos que devem ser juntados ao programa compilado para gerar o programa executável. Geralmente são arquivos com extensão ".lib". O código gerado poderá ser executado. No mundo Windows, este código tem a extensão ".exe"; no mundo Unix, tem a extensão que o programador quiser.

d) Execução

Após a geração do código executável, basta que este seja executado. Um código gerado para um sistema operacional, a princípio, não roda em outro.

(2)

Conjunto de caracteres do C

A Linguagem C distingue as letras maiúsculas das minúsculas. Os caracteres utilizados são os seguintes: A - Z a -z 0 - 9 space . , : ; ' $ " # % & ! _ {} [] () < > | + - / * = Formato do programa C

Todo programa C consiste de uma ou mais funções. Existe uma função principal, obrigatória em qualquer prograna chamada main(). Esta é a primeira função que será executada em um programa. Contém, em essência, um esboço de mais alto nível do que o programa faz. A partir dela outras funções serão chamadas.

Além das funções, um programa C deverá ter declarações de variáveis. Todas as variáveis devem ser alocadas antes da sua utilização.

Com funções, variáveis e comandos próprios da linguagem (palavras reservadas são todas em letras minúsculas) pode-se construir qualquer programa. Entretanto, a definição de funções permite que estas sejam reutilizadas em situações semelhantes em novos programas. A partir daí existe uma biblioteca padrão de funções que realizam as tarefas mais comuns (por exemplo -entrada e saída). Além das funções padrão que estão implementadas em qualquer compilador, existem funções específicas de cada ambiente. O código destas funções será adicionado ao programa no momento de "linkar".

A seguir é apresentado o formato geral de um programa C. Diretivas de pré-processamento

Declarações globais main()

{

variáveis locais à função main ; instruções da função main ; }

f1() {

variáveis locais à função f1 ; instruções da função f1 ; }

f2() {

variáveis locais à função f2 ; instruções da função f2 ; } . . . etc

(3)

Primeiro programa

/* Meu primeiro programa */ #include <stdio.h>

main() {

printf("Meu primeiro programa\n"); }

Comentário

Os comentários podem estar em qualquer parte do programa. Iniciarão sempre após os símbolos "/*" e terminarão com os símbolos "*/" isso para comentários com mais de uma linha. Também pode-se usar // para comentários pequenos.

Diretiva de pré-compilação - #include

Esta diretiva inclui um arquivo de cabeçalho, que tem sempre a extensão ".h". Este arquivo apresenta definições utilizadas pelas funções de uma determinada biblioteca que será usada. No caso, o arquivo stdio.h é necessário para se utilizar a função printf(), que escreve na tela.

Execução do programa

O programa inicia pela primeira linha da função main() e termina na última linha da função main(). Portanto, a função printf() é executada e o programa termina. A função printf() é responsável por pegar os caracteres que estão delimitados por aspas e colocá-los na tela. Como ela faz isto não interessa ao programador. Este apenas precisa saber como passar os dados que quer jogar na tela para a função. O símbolo "\n" indica que a função deve pular passar para a próxima linha ao final da frase.

Os programas e C são constituídos da seguinte forma: #Inclusão das Biblitecas de funções

Declaração de variáveis Função principal main {

comandos }

(4)

As variáveis no C podem ter qualquer nome se duas condições forem satisfeitas: O nome deve começar com uma letra ou sublinhado (_)

Os caracteres subsequentes devem ser letras, números ou sublinhado (_).

Há apenas mais duas restrições: o nome de uma variável não pode ser igual a uma palavra reservada, nem igual ao nome de uma função declarada pelo programador, ou pelas bibliotecas do C. Variáveis de até 32 caracteres são aceitas. Mais uma coisa: é bom sempre lembrar que o C é "case sensitive" e portanto deve-se prestar atenção às maiúsculas e minúsculas.

Palavras resevadas auto break case char const continue default 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 Os Tipos do C

O C tem 4 tipos básicos: char, int, float, void. O void é o tipo vazio, ou um "tipo sem tipo". A aplicação deste "tipo" será vista posteriormente.

Tipos básicos

char -1 byte. Este tipo é utilizado para se guardar valores definidos dentro da tabela ASCII, podem ser letras ou caracteres especiais .

int - número inteiro. Geralmente apresenta o tamanho natural da palavra do processador. float - O tipo float permite representar números com ponto flutuante utilizando 32 bits. void - Este tipo declara explicitamente que uma função não retorna nenhum valor.

Também nesta tabela está especificado o formato que deve ser utilizado para ler os tipos de dados com a função scanf():

Strings

No C uma string é um vetor de caracteres terminado com um caractere nulo. O caracter nulo é um caractere com valor inteiro igual a zero (código ASCII igual a 0). O terminador nulo também pode ser escrito usando a convenção de barra invertida do C como sendo '\0'. Embora o assunto vetores seja discutido posteriormente, veremos aqui os fundamentos necessários para que possamos

(5)

utilizar as strings. Para declarar uma string, podemos usar o seguinte formato geral: char nome_da_string[tamanho];

Isto declara um vetor de caracteres (uma string) com número de posições igual a tamanho. Note que, como temos que reservar um caractere para ser o terminador nulo, temos que declarar o comprimento da string como sendo, no mínimo, um caractere maior que a maior string que pretendemos armazenar. Vamos supor que declaremos uma string de 7 posições e coloquemos a palavra João nela. Teremos:

J o a o \0 ... ...

No caso acima, as duas células não usadas têm valores indeterminados. Isto acontece porque o C não inicializa variáveis, cabendo ao programador esta tarefa. Portanto as únicas células que são inicializadas são as que contêm os caracteres 'J', 'o', 'a', 'o' e '\0' .

Se quisermos ler uma string fornecida pelo usuário podemos usar a função gets(). Um exemplo do uso desta função é apresentado abaixo. A função gets() coloca o terminador nulo na string, quando você aperta a tecla "Enter".

#include <stdio.h> int main ()

{

char string[100];

printf ("Digite uma string: "); gets (string);

printf ("\n\nVoce digitou %s",string); return(0);

}

Neste programa, o tamanho máximo da string que você pode entrar é uma string de 99 caracteres. Se você entrar com uma string de comprimento maior, o programa irá aceitar, mas os resultados podem ser desastrosos. Veremos porque posteriormente.

Como as strings são vetores de caracteres, para se acessar um determinado caracter de uma string, basta "indexarmos", ou seja, usarmos um índice para acessarmos o caracter desejado dentro da string. Suponha uma string chamada str. Podemos acessar a segunda letra de str da seguinte forma:

str[1] = 'a';

Por quê se está acessando a segunda letra e não a primeira? Na linguagem C, o índice começa em zero. Assim, a primeira letra da string sempre estará na posição 0. A segunda letra sempre estará na posição 1 e assim sucessivamente. Segue um exemplo que imprimirá a segunda letra da string "Joao", apresentada acima. Em seguida, ele mudará esta letra e apresentará a string no final.

Declaração e Inicialização de Variáveis

As variáveis no C devem ser declaradas antes de serem usadas. A forma geral da declaração de variáveis é:

(6)

As variáveis da lista de variáveis terão todas o mesmo tipo e deverão ser separadas por vírgula.

Por exemplo, as declarações char letra;

int contador, Nota1, Nota2; float pi;

Há três lugares nos quais podemos declarar variáveis. O primeiro é fora de todas as funções do programa. Estas variáveis são chamadas variáveis globais e podem ser usadas a partir de qualquer lugar no programa. Pode-se dizer que, como elas estão fora de todas as funções, todas as funções as vêem. O segundo lugar no qual se pode declarar variáveis é no início de um bloco de código. Estas variáveis são chamadas locais e só têm validade dentro do bloco no qual são declaradas, isto é, só a função à qual ela pertence sabe da existência desta variável, dentro do bloco no qual foram declaradas. O terceiro lugar onde se pode declarar variáveis é na lista de parâmetros de uma função. Mais uma vez, apesar de estas variáveis receberem valores externos, estas variáveis são conhecidas apenas pela função onde são declaradas.

Operadores Aritméticos e de Atribuição

Os operadores aritméticos são usados para desenvolver operações matemáticas. A seguir apresentamos a lista dos operadores aritméticos do C:

+ - * / ++ --Soma Subtração Multiplicação Divisão Incremento Decremento

Os operadores de incremento e decremento alteram a variável sobre a qual estão aplicados. O que eles fazem é incrementar ou decrementar, a variável sobre a qual estão aplicados, de 1. Então x++;

x--;

são equivalentes a x=x+1;

x=x-1;

O operador de atribuição do C é o =. O que ele faz é pegar o valor à direita e atribuir à variável da esquerda. Além disto ele retorna o valor que ele atribuiu. Isto faz com que as seguintes expressões sejam válidas:

x=y=z=1.5; /* Expressao 1 */ if (k=w) ... /* Expressao 2 */

(7)

fazendo y = 1.5 e posteriormente x = 1.5. A expressão 2 será verdadeira se w for diferente de zero, pois este será o valor retornado por k=w. Pense bem antes de usar a expressão dois, pois ela pode gerar erros de interpretação. Você não está comparando k e w. Você está atribuindo o valor de w a k e usando este valor para tomar a decisão.

Operadores Relacionais e Lógicos

Os operadores relacionais do C realizam comparações entre variáveis. São eles: Operador > >= < <= == != Ação Maior do que Maior ou igual a Menor do que Menor ou igual a Igual a Diferente de Os operadores relacionais retornam verdadeiro (1) ou falso (0).

Para fazer operações com valores lógicos (verdadeiro e falso) temos os operadores lógicos: Operador && || ! Ação AND (E) OR (OU) NOT (NÃO)

Usando os operadores relacionais e lógicos podemos realizar uma grande gama de testes. Comandos de I/O (Entrada e Saída de dados)

Função printf()

printf(string , lista_de_argumentos)

Esta função coloca dados formatados na tela. O protótipo está em stdio.h e a função devolve o número de caracteres escritos, ou um valor negativo se ocorrer um erro.

A string de controle apresenta caracteres que serão colocados na tela e comandos de formato que definem a maneira como os argumentos serão escritos. Estes comandos começam sempre por % (porcento) e são seguidos pelos códigos dos formatos.

Símbolo Substituição

%c caractere

%d Inteiro decimal com sinal %i Inteiro decimais com sinal

(8)

%e Notação científica %E Notação científica %f Ponto flutuante decimal

%s String

%u Inteiro decimal sem sinal %% Escreve símbolo % (porcento) Exemplo:

int A; float B;

printf(“Valor da variavel A = %d”, A); printf(“Valor da variavel B = %f”, B); printf(“A = %d e B = %f”, A, B); OBS:

%.2f  coloca duas casas depois da virgula %.5f  coloca cinco casas depois da virgula Função scanf

O formato geral da função scanf() é: scanf (string-de-controle,lista-de-argumentos);

Usando a função scanf() podemos pedir dados ao usuário. Mais uma vez, devemos ficar atentos a fim de colocar o mesmo número de argumentos que o de códigos de controle na string de controle. Devemos sempre nos lembrar que a função scanf() deve receber ponteiros como parâmetros. Isto significa que as variáveis que não sejam por natureza ponteiros devem ser passadas precedidas do operador &. Os especificadores de formato de entrada são muito parecidos com os de printf().

Código Formato

%c Um único caracter(char) %d Um número decimal(int) %i Um número inteiro %f Um ponto flutuante

(9)

%s String Exemplos: Int A; Char letra; scanf(“%d”,&A); scanf(“%c”,&letra); Exercícios:

1) Faça um programa em C que lê duas notas de um aluno e calcula a média.

2) Escreva um programa em C para ler um valor (do teclado) e escrever (na tela) o seu antecessor. 3) Escreva um programa em C para ler um uma temperatura em graus Fahrenheit, calcular e escrever o valor correspondente em graus Celsius (baseado na fórmula abaixo):

C F - 32 = 5 9

4) Escreva um programa em C para ler o número total de eleitores de um município, o número de votos brancos, nulos e válidos. Calcular e escrever o percentual que cada um representa em relação ao total de eleitores.

5) Escreva um programa em C para ler o salário mensal atual de um funcionário e o percentual de reajuste.Calcular e escrever o valor do novo salário.

6) O custo de um carro novo ao consumidor é a soma do custo de fábrica com a porcentagem do distribuidor e dos impostos (aplicados ao custo de fábrica). Supondo que o percentual do distribuidor seja de 28% e os impostos de 45%, escrever um programa em C para ler o custo de fábrica de um carro e escrever o custo final ao consumidor.

7) Uma revendedora de carros usados paga a seus funcionários vendedores um salário fixo por mês, mais uma comissão também fixa para cada carro vendido e mais 5% do valor das vendas por ele efetuadas. Escrever um programa em C que leia o número de carros por ele vendidos, o valor total de suas vendas, o salário fixo e o valor que recebe por carro vendido. Calcule e escreva o salário mensal do vendedor.

8) Faça um programa em C para trocar valores das variáveis A e B onde: A = 10;

B = 35;

Referências

Documentos relacionados

Cabe ressaltar que os municípios que exibiram grau de desenvolvimento muito baixo e baixo, se encontram em sua maioria na região centro-sul, que, como ilustração, abriga a capital

Na apresentação dos dados estatísticos, ficou demonstrada à todos os participantes a dimensão da pesquisa, abrangendo o setor produtivo como um todo, enfocando a produção

Já partilhou palco com músicos como Afonso Pais, Mário laginha, Carlos Bica, Filipe raposo, nuno Costa, nelson Cascais, André Fernandes, orquestra oJM, orquestra HCP, João

O armazenamento da embalagem vazia, até sua devolução pelo usuário, deve ser efetuado em local coberto, ventilado, ao abrigo de chuva e com piso impermeável, no próprio local onde

Na análise por serviço, apresentam-se apenas os resultados dos serviços com um número de doentes elegíveis para avaliação superior a 3.. Dos 362 doentes que foram avaliados

O capítulo três trata dos Parâmetros Curriculares Nacionais do Ensino Médio Brasileiros (PCNEM) e o Currículo Mínimo proposto pela Secretaria de Estado de Educação no Rio de

Espera-se com este artigo de caráter teóri- co ter alcançado o propósito de assinalar alguns caminhos para ensinar a resolução de problemas matemáticos no Ensino Fundamental a

Social e Violência, Silva (2008) constata um recente adensamento da discussão da questão da violência nos principais congressos e encontros de Serviço Social, endossando