Baixe o app para aproveitar ainda mais
Prévia do material em texto
Conceitos básicos da linguagem C PC-I © MAP’2016 Conceitos básicos da linguagem C • Histórico da linguagem C. • Tipos primi8vos de dados. • Constantes e variáveis. • Atribuição. • Operadores aritmé8cos. • Funções de leitura e de exibição. 51 Conceitos básicos da linguagem C PC-I © MAP’2016 Breve histórico da linguagem C 1966: Mar8n Richards (MIT) propõe a Basic Combined Programming Language (BCPL) para o desenvolvimento de compiladores simplificados para outras linguagens de programação. Todas as variáveis eram de um único 8po (word), cujo tamanho dependia da arquitetura do computador onde era executada. O primeiro programa “Hello, world!” foi escrito em BCPL. 52 GET "LIBHDR" LET START() BE $( WRITES("Hello, world!*N") $) Conceitos básicos da linguagem C PC-I © MAP’2016 Breve histórico da linguagem C 1969: Ken Thompson (Bell Labs) adaptou a Linguagem BCPL para u8lização em mini-computadores. Criação de variáveis do 8po caractere (letras) e a inclusão de bibliotecas externas de funções. à B 1971: Dennis Richie (Bell Labs) acrescentou 8pagem à linguagem B (inteiro, real, caracter etc), e alterou seu compilador para produzir código em linguagem de máquina. à NB (New B). 1972: Com a inclusão de um programa pré-processador ao compilador e pequenas alterações na sintaxe, NB passou a se chamar C, sendo u8lizada para reescrever cerca de 90% do núcleo do sistema operacional UNIX, sendo também distribuída com este sistema. 53 Conceitos básicos da linguagem C PC-I © MAP’2016 Principais caracterís8cas da linguagem C A linguagem C combina caracterís8cas de linguagens de alto-nível com a funcionalidade de linguagens de montagem (assembly languages). Dentre as principais caracterís8cas que tornaram C uma das linguagens mais populares estão: • Seu compilador gera programas-executáveis menores e mais velozes do que muitas outras linguagens; • Uso extensivo de funções: permite que tarefas específicas sejam definidas e codificadas separadamente – um programa em C é uma coleção de funções; • Implementação de ponteiros: endereçamento da memória, vetores, estruturas e funções. 54 Conceitos básicos da linguagem C PC-I © MAP’2016 O menor programa em C Todo programa escrito na linguagem C possui um estrutura básica, sobre a qual são adicionadas as instruções e comandos que se deseja que o programa execute. 55 int main() { return(0); } A função int main() • É a função principal de um programa em C. • Sempre deverá exis8r. • Marca o início da execução do programa. Conceitos básicos da linguagem C PC-I © MAP’2016 Algumas notas MUITO importantes 56 Tudo que tem um começo tem um fim (exceto a história do filme Matrix ) • Os símbolos /* e */ indicam o começo e o fim de um comentário. • Os símbolos { e } indicam o começo e o fim de um bloco de comandos. • Os símbolos " e " indicam o começo e o fim de uma cadeia de caracteres. • Todo comando deve ser encerrado com o símbolo ; (ponto-e-vírgula). /* Programa Hello, world! */ #include <stdio.h> int main() { printf("Hello, world!\n"); return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 Principais bibliotecas da linguagem C A linguagem C possui um conjunto mínimo de instruções, visando a criação de programas executáveis de tamanho pequeno. A adição de novas funcionalidades é feita através da inclusão de bibliotecas, que contêm classes de funções específicas para o tratamento de dados desejado. A inclusão de bibliotecas devem ser as primeiras instruções de um programa em C. 57 #include <stdio.h> // biblioteca de funções de entrada e saída #include <stdlib.h> // biblioteca de funções do sistema operacional int main() { printf("Primeiro programa em C!\n"); system("PAUSE"); return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 Principais bibliotecas da linguagem C 58 Biblioteca Principais funcionalidades stdio.h entrada e saída de dados. stdlib.h alocação de memória e comandos para o sistema operacional. math.h funções matemá8cas. time.h manipulação de dados nos formatos de data e hora. ctype.h manipulação de caracteres. string.h manipulação de cadeias de caracteres. conio.h manipulação do cursor na tela. Conceitos básicos da linguagem C PC-I © MAP’2016 Armazenamento de dados Antes de serem u8lizadas em um programa, as informações do mundo ksico devem ser armazenadas na memória do computador. Em programação, tais informações recebem o nome de dado. Os dados podem ser valores numéricos ou símbolos gráficos (caracteres) Para isso, o programa reserva endereços de memória, que passam a ser iden8ficados por um nome, geralmente relacionado à informação que ele representa (massa, altura, força, cor etc.) Através deste nome, a informação con8da no respec8vo endereço de memória pode ser modificada ou u8lizada em expressões, comandos e funções do programa. 59 Conceitos básicos da linguagem C PC-I © MAP’2016 Constantes e variáveis Em linguagens de programação de alto nível, os dados podem ser de duas naturezas: constantes ou variáveis. 60 Constantes Assumem um único valor, do início ao fim da execução do programa, não podendo ser alterado por nenhum comando ou função. Variáveis Assumem um valor inicial, que pode ser alterado por alguma função ou comando durante a execução do programa. Conceitos básicos da linguagem C PC-I © MAP’2016 Tipos primi8vos da linguagem C A linguagem C realiza operações sobre dados numéricos e não-numéricos. Os dados numéricos podem ser de 3 8pos dis8ntos: int : para valores inteiros; float : para valores de ponto flutuante; double : para valores de ponto flutuante de precisão dupla. char : para valores não-numéricos (dados como letras, dígitos ou outro símbolo gráfico). 61 Conceitos básicos da linguagem C PC-I © MAP’2016 Declaração 62 0xC907 0xC908 0xC909 0xC910 0xC911 Memória endereços 0xC912 0xAD14 0xAD15 0xAD16 0xAD17 0xAD18 0xAD19 Memória endereços A declaração é um comando que associa o nome de uma constante ou de uma variável a um determinado endereço de memória. int main() { const int i = 5; int j; // comandos return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 Tipos e valores Os valores admissíveis para cada 8po primi8vo podem ser alterados com o uso dos modificadores unsigned, short e long. 63 Tipo Tamanho (bytes) Intervalo Início Fim char 1 –128 127 unsigned char 1 0 255 short int 2 –32768 32767 unsigned short int 2 0 65535 int 4 –2147483648 2147483647 unsigned int 4 0 4294967295 float 4 ±3.4 E–38 ±3.4 E+38 double 8 ±1.7 E–308 ±1.7 E+308 long double 10 ±3.4 E–4932 ±3.4 E+4932 Conceitos básicos da linguagem C PC-I © MAP’2016 A tabela ASCII padrão 64 Conceitos básicos da linguagem C PC-I © MAP�2014 Conceitos básicos da linguagem C PC-I © MAP’2016 Regras 0a e 0b sobre constantes e variáveis 65 Declaração prévia Toda constante ou variável deve ser declarada antes de ser usada. Declaração única O nome da constante ou variável deve ser único. Conceitos básicos da linguagem C PC-I © MAP’2016 Iden8ficadores de constantes e variáveis Os nomes dados às constantes ou variáveis de um programa denominam- se iden8ficadores. Para definir um iden8ficador pode-se u8lizar uma combinação de: • letras (maiúsculas e minúsculas, sem acentuação). • dígitos (0 a 9), desde que o primeiro caractere não seja um dígito. • caractere '_' (sublinha). A linguagem C diferencia letras maiúsculas e minúsculas. 66 int F;// uma variável inteira denominada F float f; // uma variável real denominada f double valor de A; // identificador inválido! char 1a_inicial; // identificador inválido! Conceitos básicos da linguagem C PC-I © MAP’2016 Palavras reservadas da linguagem C As seguintes palavras não podem ser u8lizadas para denominar en8dades (constantes, variáveis, estruturas, funções etc.) criadas pelo programador: • Armazenamento: auto, extern, register, static. • Tipagem: char, const, double, enum, float, int, long, short, signed, struct, typedef, union, unsigned, void, volatile. • Controle de execução: break, continue, goto, return. • Comandos de seleção: case, default, else, if, switch. • Comandos de iteração: do, for, while. • Função: sizeof(). 67 Conceitos básicos da linguagem C PC-I © MAP’2016 Armazenando valores em variáveis Existem 3 formas de armazenar valores em variáveis. 68 Inicialização (declaração com atribuição): float x = 1.234; Atribuição: float x; x = 1.234; Leitura: float x; scanf("%f", &x); // o valor de x será informado pelo usuário // durante a execução do programa Conceitos básicos da linguagem C PC-I © MAP’2016 Atribuindo valores à variáveis A atribuição é um comando u8lizado para modificar o valor de uma variável. 69 int main() { int i; float x; char c; i = 5; // a variável i recebe o valor inteiro 5. x = 5.0; // a variável x recebe o valor "real" 5. c = '5'; // a variável c recebe o caratere '5'. ... return(0); } Atenção • o símbolo de atribuição = não significa igualdade. • a atribuição sempre atua da direita para a esquerda (←). Conceitos básicos da linguagem C PC-I © MAP’2016 Atribuindo valores à variáveis A atribuição é um comando destru8vo, ou seja, o valor anteriormente armazenado pela variável à esquerda do símbolo = será subs8tuído pelo valor da constante, variável ou expressão no lado direito. 70 int main() { int i; int j; i = 2; // i recebe o valor 2. j = i; // j recebe o valor de i. i = 0; // i recebe o valor 0. i = i + 1; // some 1 ao valor atual de i e armazene o resultado em i. i = j; // i recebe o valor de j. return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 Operadores aritmé8cos A precedência das operações aritmé8cas em C obedece às regras estabelecidas pela Álgebra. Os operadores com mesmo nível de precedência são avaliados pelo compilador da esquerda para a direita. A precedência das operações pode ser modificada com o uso de parênteses. 71 Símbolo Operação Resultado Precedência + adição soma dos argumentos baixa – subtração diferença dos argumentos baixa * mul8plicação produto dos argumentos média / divisão quociente dos argumentos média % módulo resto da divisão inteira média ++ incremento adiciona 1 ao operando alta –– decremento subtrai 1 do operando alta Conceitos básicos da linguagem C PC-I © MAP’2016 Expressões aritmé8cas Calcular o perímetro e o volume de uma esfera de raio r = 3. P = 4πr2. 72 int main() { const float PI = 3.14159; float r = 3; float p, v; p = 4*PI*r*r; v = (4.0/3.0)*PI*r*r*r; return(0); } € V = 43 πr 3 Conceitos básicos da linguagem C PC-I © MAP’2016 A função de exibição printf() A função printf() é u8lizada para exibição de informações. Sua sintaxe é: printf("expressão de controle", lista de argumentos); A "expressão de controle" contém a mensagem que será exibida na tela, juntamente com os caracteres especiais de exibição e os códigos de formatação dos argumentos. A lista de argumentos corresponde à constantes, variáveis e expressões que serão exibidas na tela, de acordo com os formatos estabelecidos pela "expressão de controle". 73 Conceitos básicos da linguagem C PC-I © MAP’2016 Símbolos para a função printf() Servem para controle e formatação da exibição em tela. 74 Código Exibição %c caractere simples %s cadeia de caracteres %d valor inteiro %u valor inteiro sem sinal %f valor de ponto flutuante %e notação cien{fica %o valor octal %x valor hexadecimal %% caractere % Caractere Ação \n nova linha \t tabulação \b retrocesso (backspace) \f novo formulário \a alerta (sinal sonoro) \r início da linha \0 caractere nulo \" exibe o caractere " \\ exibe o caractere \ Conceitos básicos da linguagem C PC-I © MAP’2016 Uso da função printf() 75 Exibir uma mensagem e pular duas linhas: printf("Bom dia!\n\n"); Exibir uma mensagem: printf("Bom dia!"); Exibir o valor de uma variável inteira: printf("%d", j); Exibir o valor de uma variável inteira e de uma variável real, na mesma linha: printf("%d %f", j, x); Exibir mensagens e valores de variáveis, em linhas dis8ntas: printf("Valor de j = %d\nValor de x = %f\n", j, x); Conceitos básicos da linguagem C PC-I © MAP’2016 A função printf() Exemplo: Exibir um caractere de diversas formas diferentes. 76 #include <stdio.h> #include <stdlib.h> int main() { char a = 'A'; printf("CAR: %c\nDEC: %d\nOCT: %o\nHEX: %x\n", a, a, a, a); system("PAUSE"); return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 A função de leitura scanf() A função scanf() é u8lizada para leitura de dados pelo teclado. Sua sintaxe é: scanf("expressão de controle", lista de argumentos); Diferentemente da função printf(), a "expressão de controle" da função scanf() deverá conter apenas os códigos de formatação das variáveis a serem lidas. A lista de argumentos é composta pelos nomes das variáveis que serão lidas, precedidas pelo símbolo & (endereço), de acordo com a ordem estabelecida pela "expressão de controle". 77 Conceitos básicos da linguagem C PC-I © MAP’2016 Uso da função scanf() Na função scanf() é imprescindível o uso do símbolo de endereço & imediatamente antes do nome da variável. 78 Ler o valor de uma variável inteira: scanf("%d", &j); Ler o valor de uma variável real e uma variável inteira: scanf("%f %d", &x, &j); leia um valor inteiro e armazene no endereço de memória reservado para a variável j leia e armazene nos respec8vos endereços de memória de cada variável dois valores separados por um espaço em branco Conceitos básicos da linguagem C PC-I © MAP’2016 Exemplo Exibir o valor correspondente em graus fahrenheit de uma temperatura em graus celsius informada pelo usuário. 79 #include <stdio.h> #include <stdlib.h> int main() { float grausC, grausF; printf("Informe a temperatura em graus celsius: "); scanf("%f", &grausC); grausF = (9*grausC + 160)/5; printf("Temperatura em graus fahrenheit: %.1f\n", grausF); system("PAUSE"); return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 Uso combinado printf() e scanf() A função scanf() não deve ser u8lizada para exibir mensagens. 80 Isto não funciona!!! scanf("Entre com o valor de i = %d", &i); Isto sim, funciona!!! printf("Entre com o valor de i = "); scanf("%d", &i); Conceitos básicos da linguagem C PC-I © MAP’2016 Formatando a exibição de valores A função printf() permite definir como os valores das constantes e variáveis serão exibidos na tela. 81 Exibindo valores inteiros: int i = 3; printf("i = %d", i); // i = 3 printf("i = %5d", i); // i = 3 printf("i = %05d", i); // i = 00003 Exibindo valores reais: float pi = 3.14159265358; printf("pi = %f", pi); // pi = 3.141593 printf("pi = %.4f", pi); // pi = 3.1416 printf("pi = %8.2f", pi); // pi = 3.14 Atenção!!! Não se usa formatação de exibição na função scanf(). Conceitosbásicos da linguagem C PC-I © MAP’2016 O operador de subtração O símbolo – representa a operação de subtração. Quando u8lizado numa expressão aritmé8ca, ele calcula e diferença entre os operadores envolvidos. Este símbolo também define o operador unário que altera o sinal da constante, variável ou expressão que o sucede. 82 Alterar o sinal de uma variável ou expressão... x = -x; k = -(i + j); ... é o mesmo que mul8plicar a variável ou expressão por -1 x = (-1)*x; k = (-1)*(i + j); Conceitos básicos da linguagem C PC-I © MAP’2016 O operador de divisão O símbolo / representa a operação de divisão. Uma expressão aritmé8ca contendo diversos valores no numerador ou no denominador deve ser linearizada com o uso de parênteses. à x = (a + b)/(c + d); O resultado da operação de divisão depende do 8po dos operandos na expressão. 83 Quando houver apenas operando inteiros... Será realizada a divisão inteira. Quando pelo menos um dos operandos for real... Será realizada a divisão real. € x← a + bc + d Conceitos básicos da linguagem C PC-I © MAP’2016 O operador módulo O símbolo % representa o operador módulo, que calcula o resto da divisão inteira entre 2 operandos do 8po inteiro. Ex: à 13 = 5 * 2 + 3 84 13 5 3 2 dividendo divisor quociente resto int D = 13, d = 5; int Q, R; Q = D/d; R = D%d; printf(“Resultado da divisão inteira: %d\n”, Q) ; printf(“Resto da divisão inteira: %d\n”, R); Conceitos básicos da linguagem C PC-I © MAP’2016 Operadores de incremento e decremento São u8lizados para adicionar ou subtrair 1 unidade de uma variável inteira. 85 i++; // equivale ao comando i = i + 1; j--; // equivale ao comando j = j – 1; Notação pré-fixa O valor da variável é atualizado antes de ser u8lizado na expressão. Notação pós-fixa O valor da variável é atualizado depois de ser u8lizado na expressão. i = 3; j = ++i; // i assume o valor 4, j assume o valor de i i = 3; j = i++; // j assume o valor de i, i assume o valor 4 Conceitos básicos da linguagem C PC-I © MAP’2016 Conversão de 8pos em atribuições A linguagem C permite a atribuição de valores entre constantes e variáveis de 8pos diferentes. Em alguns casos pode haver perda de informação. 86 (char) = (int) Armazena apenas os bits menos significa8vos da variável inteira. (int) = (float) Armazena apenas a parte inteira do valor de ponto flutuante. (float) = (char) Armazena o valor inteiro associado ao caractere. (float) = (int) Armazena o valor inteiro como um número de ponto flutuante. Conceitos básicos da linguagem C PC-I © MAP’2016 O 8po char Variáveis ou constantes do 8po char são usadas para amazenar caracteres. Na atribuição de valores a variáveis do 8po char os símbolos devem ser escritos entre aspas simples ' '. Usa-se o código de formatação %c para ler ou exibir valores do 8po char. 87 int main() { char c1, c2, c3; c1 = 'O'; c2 = 'b'; c3 = 'A'; printf("%c %c %c\n", c1, c2, c3); // exibe O b A printf("%c%c%c\n", c2, c1, c3); //exibe bOA system("PAUSE"); return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 Funções na8vas de entrada e saída • getchar(): lê um caractere até que a tecla <ENTER> seja pressionada. Se mais de um caractere for digitado, apenas o primeiro caractere será considerado e o restante será descartado. 88 #include <stdio.h> #include <stdlib.h> int main() { char a; printf("Digite um caractere: "); a = getchar(); // armazena a entrada até pressionar <ENTER> printf(”Caractere digitado: %c\n", a); system("PAUSE"); return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 Funções na8vas de entrada e saída • putchar(): Exibe na tela o caractere passado como argumento, a par8r da posição atual do cursor. 89 #include <stdio.h> #include <stdlib.h> #include <ctype.h> int main() { char a; printf("Digite uma letra minuscula: "); a = getchar(); putchar( toupper(a) ); putchar('\n') system("PAUSE"); return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 Funções na8vas de entrada e saída • getche(): Lê um caractere do teclado sem pressionar <ENTER> e mostra o que foi digitado. 90 #include <stdio.h> #include <stdlib.h> int main() { char a; printf("Digite um caractere: "); a = getche(); printf("\nO caractere digitado foi %c.\n", a); system("PAUSE"); return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 Funções na8vas de entrada e saída • getch(): Lê um caractere do teclado sem pressionar <ENTER> e não mostra o que foi digitado. 91 #include <stdio.h> #include <stdlib.h> int main() { char a; printf("Digite um caractere: "); a = getch(); printf("\nO caractere digitado foi %c.\n", a); system("PAUSE"); return(0); } Conceitos básicos da linguagem C PC-I © MAP’2016 A função puts() • É u8lizada apenas para exibir mensagens na tela. • A mensagem a ser exibida deverá ser escrita entre aspas. • Após a exibição da mensagem, a função puts() muda de linha automa8camente. 92 int main() { puts("Digite sua opcao:"); puts("[1] Consultar"); puts("[2] Incluir"); puts("[3] Atualizar"); puts("[4] Excluir"); puts("[5] Encerrar"); printf("-> "); ... } Conceitos básicos da linguagem C PC-I © MAP’2016 Funções de manipulação de caracteres char a; • isalpha(a): testa se o caractere é uma letra. • isdigit(a): testa se o caractere é um algarismo. • isespace(a): testa se é o caractere espaço ' '. • islower(a): testa se é uma letra minúscula. • isupper(a): testa se é uma letra maiúscula. • tolower(a): converte o caractere para minúscula. • toupper(a): converte o caractere para maiúscula. Estas funções estão definidas na biblioteca ctype.h. 93
Compartilhar