Baixe o app para aproveitar ainda mais
Prévia do material em texto
Gustavo Luís F. Vicente Linguagem C MÓDULO 1 Introdução Linguagem C 2 Preliminares Plano de Ensino Dinâmica Aulas em sala (PPT / cuspe & “giz”) Exercícios, exercícios, e mais exercícios... Material Livros sobre C da biblioteca C padrão ANSI C Completo e Total Apostilas Listas de exercícios ConexãoUFF Linguagem C 3 Preliminares Avaliações 1, 2 e 3 Prova (100%) Todos individuais, sem consulta VS: matéria toda Linguagem C 4 Preliminares Aulas Provas 1, 2, 3 VS Feriado / Recesso Compensação Linguagem C 5 O Que é um Computador? • Computador – Dispositivo capaz de executar cálculos e tomar decisões lógicas – Computadores processam dados sob o controle de um conjunto de instruções chamado programa • Hardware – Vários dispositivos formando um computador – Teclado, vídeo, mouse, discos, memória, CD-ROM, unidades de processamento • Software – Programas que são executados no computador Linguagem C 6 Unidades Lógicas do Computador • Seis unidades lógicas em todo computador – Unidades de entrada (Input unit) • Obtém informação de dispositivos de entrada (teclado, mouse, etc) – Unidades de saída (Output unit) • Mostra informações (em monitores de vídeo, impessoras, etc) – Unidades de memória • Acesso rápido, baixa capacidade, armazena informações de entrada – Unidade Lógica e Aritmética (ALU) • Executa cálculos aritméticos e decisões lógicas – Unidade Central de Processamento (CPU) • Supervisiona e coordena as outras unidades do computador – Unidade secundária de armazenamento • Barato, duradouro, alta capacidade de armazenamento • Armazena programas Linguagem C 7 Linguagens de Computador – Linguagem de máquina • Sequência de números que definem instruções específicas • Exemplo: +1300042774 +1400593419 +1200274027 – Linguagem Assembly • Abreviações (normalmente em inglês) que representam operações elementares do computador (“traduzidos” via assemblers, para linguagem de máquina) • Exemplo: LOAD salario ADD comissao STORE pagto Linguagem C 8 Linguagens de Computador – Linguagens de alto nível • Código próximo da linguagem natural • Uso de notação matemática (“traduzidos” via compiladores) • Linguagens: C, C++, Pascal, Basic, Fortran, Cobol, Algol, etc • Exemplo: pagto = salario + comissao Linguagem C 9 Ciclo de desenvolvimento de programas EDIÇÃO COMPILAÇÃO .bas, .c, .cpp, .pas, .for, etc .obj Código-fonte Código-objeto LINKEDIÇÃO .exe Código- executável Erro de lógica (execução) Erro de sintaxe Linguagem C 10 Histórico da linguagem C • Criada em 1971, por Dennis Ritchie e Brian Kernighan • Definida a partir da linguagem B, derivada da BCPL • Criada inicialmente no ambiente Unix • Padronizada pela ANSI, em 1989 Linguagem C 11 Características Básicas • Minimalista – sem termos desnecessários, sem redundâncias – p.ex.: o if não tem then • Sem verificações de limites – p.ex.: pode-se acessar o 11º elemento de um vetor de 10 elementos • Composto por funções – blocos de código, identificados por um nome Linguagem C 12 Bibliotecas de Funções • Programas em C são formados por funções – Um programador pode criar suas próprias funções • Vantagem: o programador sabe exatamente como ela funciona • Desvantagem: tempo gasto – Programadores normalmente utilizam funções da biblioteca do C • Use-as como blocos funcionais (tipo caixa-preta) – Evite reinventar a roda • Se uma função já existe e faz o que você precisa, prefira utilizá-la a criar a sua própria • Funções das bibliotecas: criadas e testadas, eficientes e portáveis Linguagem C 13 Um programa Simples em C 1 /* Primeiro programa em C */ 2 #include <stdio.h> 3 4 /* Função main() inicia a execução do programa */ 5 int main() 6 { 7 printf( ”Benvindo à linguagem C!\n" ); 8 9 return 0; /* Indica que o programa terminou normalmente */ 10 11 } /* Fim da função main() */ Benvindo à linguagem C! Comentários em C • Texto cercado por /* e */ é ignorado pelo compilador • Usado para descrever o programa Este programa escreve uma linha de texto na tela. Linguagem C 14 Um programa Simples em C #include <stdio.h> • diretiva de compilação ou diretiva do pré-processador • instrui o compilador a incluir um arquivo na compilação do programa • o arquivo stdio.h declara as funções de entrada/saída • stdio.h é uma das bibliotecas de funções do C • os símbolos < e > indicam que o compilador irá procurar o arquivo no diretório default (que normalmente não é o diretório de trabalho) • se o arquivo a ser incluído estiver no diretório de trabalho, utilizam-se as aspas dúplas no lugar de <...> •p.ex.: #include “meu_arquivo.h” Linguagem C 15 Um programa Simples em C int main() • todo programa em C é composto por funções, sendo que a única obrigatória é a função main() • os parênteses indicam que main é uma função • int significa que a função main() retorna um valor inteiro • as chaves { e } indicam um bloco de instruções • o corpo de toda função deve estar contido entre chaves Linguagem C 16 Um programa Simples em C printf("Benvindo à linguagem C! \ n"); • instrui o computador a executar uma ação • no caso, escreve a cadeia de caracteres entre aspas duplas • toda a linha é chamada de instrução • todainstrução deve ser terminada com um ponto-e-vírgula (;) • caracter de escape • indica que a função printf() deve executar alguma coisa a mais • \n representa o caracter newline (mudança de linha) Linguagem C 17 Um programa Simples em C Algumas sequências de escape comumente usadas: \n newline - cursor vai para o início da próxima linha \t horizontal tab - move o cursor para o próximo tab \a alert - emite sinal sonoro \\ contra-barra - insere uma contra-barra \” aspas duplas - insere aspas duplas Linguagem C 18 Um programa Simples em C return 0; • uma maneira para sair da função • return o, neste caso, indica que a função terminou normalmente Fecha chave } • indica que o fim da função foi alcançado Linguagem C 19 Um parênteses: desenvolvendo no Linux Preparando o ambiente Acessar: Aplicativos-->Acessórios-->Terminal Criar um diretório de trabalho (apenas uma vez): mkdir ProgC • Quando vamos programar, entramos no diretório de trabalho: cd ./ProgC Linguagem C 20 Um parênteses: desenvolvendo no Linux editor • Acessar: Aplicativos-->Acessórios-->Editor de Texto • editamos o código-fonte • salvamos com a extensão .c gcc • compilador de linguagem C • compila e linkedita • após edição, compilamos (e linkeditamos) com o gcc • No terminal: gcc arq_fonte.c –o arq_executavel • se compilação OK, executamos: • ./arq_executavel Linguagem C 21 Imprimindo uma linha com dois printf() O resultado é o mesmo 1 /* Primeiro programa em C */ 2 #include <stdio.h> 3 4 /* Função main() inicia a execução do programa */ 5 int main() 6 { 7 printf( ”Benvindo à “); 8 printf( “linguagem C!\n" ); 9 10 return 0; /* Indica que o programa terminou normalmente */ 11 12 } /* Fim da função main() */ Benvindo à linguagem C! Linguagem C 22 Um outro programa simples 1 /* Segundo programa: 2 Programa de adição de dois inteiros */ 3 #include <stdio.h> 4 5 /* Função main() inicia a execução do programa */ 6 int main() 7 { 8 int inteiro1; /* Primeiro valor a ser digitado pelo usuário */ 9 int inteiro2; /* segundo valor a ser digitadopelo usuário */ 10 int soma; /* Variável que receberá o resultado da soma */ 11 12 printf( ”Digite o primeiro inteiro\n" ); /* prompt */ 13 scanf( "%d", &inteiro1 ); /* lê um inteiroi */ 14 15 printf( ”Digite o segundo inteiro\n" ); /* prompt */ 16 scanf( "%d", &inteiro2 ); /* lê um inteiro */ 17 18 soma = inteiro1 + inteiro2; /* Atribui o total a soma */ 19 20 printf( ”A soma é %d\n", soma ); /* Mostra soma */ 21 22 return 0; /* Indica que o programa terminou normalmente */ 23 24 } /* Fim da função main() */ Linguagem C 23 Um outro programa simples Digite o primeiro inteiro 45 Digite o segundo inteiro 72 A soma é 117 Saída do programa Linguagem C 24 Um outro programa simples Como antes: comentários, #include <stdio.h> e main() int inteiro1, inteiro2, soma; • declaração de variáveis • variáveis: posições de memória onde podemos guardar um valor • int significa que as variáveis podem armazenar valores inteiros • nome das variáveis (identificadores) • inteiro1, inteiro2, soma • identificadores •consiste de letras (maiusculas e/ou minúsculas), dígitos (0 a 9) e underscore („_‟) • não pode começar com número • case sensitive: letra maiúscula é diferente de letra minúscula Linguagem C 25 Um outro programa simples scanf ("%d", &inteiro1); • Obtém um valor do usuário • scanf() usa a entrada padrão (normalmente o teclado) • Esta instrução scanf() tem dois argumentos • “%d” - indica que o valor a ser digitado deverá ser um inteiro decimal • &inteiro1 - posição de memória onde o valor será guardado • & é um operador que estudaremos mais adiante; por enquanto apenas não se esqueça de colocá-lo antes do nome da variável, em instruções scanf() •Durante a execução do programa o usuário responde à instrução scanf() digitando um valor (inteiro, neste caso), e pressionando a tecla ENTER Linguagem C 26 Um outro programa simples = (operador de atribuição de valor) • Atribui um valor a uma variável • É um operador binário (precisa de dois operandos) • soma = variavel1 + variavel2; • soma recebe (variavel1 + variavel2) • regra: a variável à esquerda recebe o valor da direita var1 = var2 + var3 Linguagem C 27 Um outro programa simples printf("A soma é %d \ n", soma); • similar ao scanf() • %d significa que um inteiro decimal será mostrado • soma especifica que inteiro será mostrado • cálculos podem ser executados dentro de instruções printf() printf("A soma é %d \ n", inteiro1 + inteiro2); Linguagem C 28 Conceitos de Memória Variáveis • nomes de variáveis correspondem a posições de memória • toda variável possui um nome, um tipo, um tamanho e um valor (conteúdo) • sempre que um novo valor é guardado em uma variável (através do scanf(), por exemplo), este novo valor substitui (sobrescreve) o valor anterior • a leitura de uma variável não altera o seu valor • Uma representação visual 45inteiro1 Linguagem C 29 Conceitos de Memória Uma representação visual (cont.) 45inteiro1 72inteiro2 ?soma 45inteiro1 72inteiro2 117soma Antes da soma Depois da soma Linguagem C 30 Aritmética • Cálculos aritméticos • Use * para multiplicar e / para dividir • Divisão de inteiros trunca o resultado • 7 / 5 resulta em 1 • Operador % retorna o resto de divisão de inteiros • 7 % 5 resulta 2 • Precedência de operadores • Alguns operadores aritméticos são executados antes de outros (p.ex.: multiplicação antes de adição) • use parênteses quando necessário • Exemplo: calcule a média de três variáveis a, b e c • Não faça: a+b+c/3 • Faça: (a+b+c)/3 Linguagem C 31 Aritmética • Operadores aritméticos Operador Função Expressão em C + Adição a + b - Subtração a - b * Multiplicação a * b / Divisão a / b % Resto a % b • Precedência de execução • ( ) Executado primeiro. Se houver vários parênteses na mesma expressão, os mais internos são processados antes. • *, /, % Executados em segundo. Se existem vários na mesma expressão, executados da esquerda para a direita. • +, - Executados por último. Se existem vários na mesma expressão, executados da esquerda para a direita. Linguagem C 32 Aritmética: precedência y = 2 * 5 * 5 + 3 * 5 + 7 2 * 5 resulta y = 10 * 5 + 3 * 5 + 7 10 * 5 resulta y = 50 + 3 * 5 + 7 3 * 5 resulta y = 50 + 15 + 7 50 + 15 resulta y = 65 + 7 65 + 7 resulta y = 72 Passo 1: Passo 2: Passo 3: Passo 4: Passo 5: Passo 6: 10 50 15 65 72 Linguagem C 33 Palavras Reservadas do C auto double int struct break else long switch case enum register typedef char extern return union const float short unsigned continue for signed void default goto sizeof volatile do if static while • A linguagem C possui 32 palavras reservadas • Palavras reservadas não podem ser usadas como identificadores, ou seja, para nomear variáveis, funções ou tipos definidos pelo usuário. Linguagem C 34 Exercícios 1.Programa que pede o ano de nascimento e informa a idade da pessoa. 2. Você vai para os states, mas lá só se mede a temperatura em graus Farenheit (°F). Faça, então, um programa que pede a temperatura em °F e mostra a temperatura correspondente em °C, sabendo a fórmula de conversão °F °C: C = (F–32)/1.8 1.A turma vai fazer um churrasco para comemorar o retorno das aulas. Você ficou encarregado de calcular a quantidade de carne a ser comprada. Sabendo que cada pessoas come, em média, 300g de carne, faça uma programa que pede o número de pessoas e informa a quantidade de carne a ser comprada, em kg.
Compartilhar