Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução à Linguagem de Programação C Daniel Aguiar da Silva Carvalho 13 de Janeiro de 2014 Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 1 / 35 Roteiro 1 Introdução 2 Linguagem de programação C Qual é a diferença de Portugol e C? Histórico Características da linguagem 3 Estrutura de um programa Diretivas A função main Comentários 4 Identificadores Palavras reservadas Tipos de Dados 5 Declaração de variáveis e constantes 6 Comandos de entrada de dados Scanf Gets e Fgets 7 Comandos de saída de dados Printf 8 Operadores aritméticos Precedência de operadores 9 Ambiente de desenvolvimento Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 2 / 35 Introdução Introdução Aprendemos a representar algoritmos utilizando: Linguagem natural; Fluxogramas; e Pseudocódigo; Aprendemos o que são variáveis e como declará-las: Operações aritméticas; e Operações lógicas; Aprendemos estruturas de controle de fluxo: Comandos de desvio; e Comandos de repetição; Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 3 / 35 Introdução Introdução O 2o bimestre será dividido em duas etapas: Primeira etapa: Introdução à Linguagem C; Estrutura de um programa (Diretivas, função main, declaração de variáveis, etc); e Estruturas de controle de fluxo; Segunda etapa: Arranjos; Subprogramas; e Struct; Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 4 / 35 Introdução Calendário de avaliações 1a avaliação: Conteúdo da primeira etapa; Data: 03/Fev/2014. 2a avaliação: Conteúdo da segunda etapa; Data: 10/Mar/2014. Prova de recuperação: Conteúdo do 1o e 2o bimestres; Data: 17/Mar/2014. Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 5 / 35 Linguagem de programação C Qual é a diferença de Portugol e C? Qual é a diferença de Portugol e C? Portugol não é uma linguagem de programação; É uma linguagem para representar pseudocódigos em português; Tem como propósito ensinar conceitos básicos de lógica de programação para iniciantes em programação; Portugol é uma linguagem interpretada e C é uma linguagem compilada; Programas em C podem ser portáveis para qualquer outra plataforma que possua um compilador C instalado; Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 6 / 35 Linguagem de programação C Histórico Histórico Algol 60; Problema: era uma linguagem de alto nível, mas na época os sistemas operacionais exigiam muito conhecimento de hardware. CPL (Combined Programming Language); Manter contato com a realidade de um computador real; Não foi bem aceita por ser difícil de implementar. BCPL (Basic Combined Programming Language) e B; Limitadas. C; Linguagem simples; Mantém o contato com o computador real; e Permite o desenvolvimento de programas em diversas áreas. Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 7 / 35 Linguagem de programação C Características da linguagem Características da linguagem Linguagem de finalidade geral; Uma das mais populares; Flexível e portável; Programas em C são compilados, gerando executáveis; Estruturalmente simples e de relativo baixo nível; Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 8 / 35 Estrutura de um programa Estrutura de um programa Cabeçalho contendo diretivas de compilador onde definimos: Constantes; Variáveis globais; Inclusão de bibliotecas, etc. Bloco de instrução principal e outros blocos de rotinas; e Documentação do programa: comentários; Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 9 / 35 Estrutura de um programa Estrutura de um programa #include <stdio.h> int main(){ printf("Olá Pessoal!"); } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 10 / 35 Estrutura de um programa Diretivas Diretivas Iniciam com #; include; stdio.h: contém funções de entrada e saída; stdlib.h: emulada o prompt para o sistema operacional; Entre outras para contas matemáticas, manipular textos, manipular formatação de dados, etc. define e undef; ifdef e endif; ifndef; etc. Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 11 / 35 Estrutura de um programa A função main A função main Um programa em C pode conter uma ou mais funções; A função int main () é a função principal; Blocos de comandos são delimitados por chaves {...}; Em C, todo comando deve terminar com um ponto e vírgula! O compilador irá procurar por esta função no momento da execução; #include <stdio.h> int main(){ printf("Olá Pessoal!"); } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 12 / 35 Estrutura de um programa Comentários Comentários Comentários auxiliam no entendimento do código; Podemos utilizar comentários em uma única linha ou em várias linhas; #include <stdio.h> // Comentário em uma única linha. int main(){ printf("Olá Pessoal!"); /* printf("Olá Pessoal!"); printf("Olá Pessoal!"); */ } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 13 / 35 Identificadores Identificadores Em C, nomes de variáveis e funções são chamados de identificadores; As escolhas desses nomes devem seguir a algumas regras: Devem iniciar por uma letra ou underline; A partir do segundo caracter pode conter letras, números e underline; C é case-sensitive; Quando o identificador é uma junção de palavras, costuma-se maiúsculas e minúsculas para separá-las (por exemplo, “SaldoTotal”); Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 14 / 35 Identificadores Palavras reservadas Palavras reservadas [2] São palavras de uso restrito da linguagem C (por exemplo, comandos, estruturas de controle de fluxo, etc.); Palavras reservadas não podem ser utilizadas como identificadores; auto double if static break else int struct case entry long switch char extern register typedef continue float return union default for sizeof unsigned do goto short while Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 15 / 35 Identificadores Tipos de Dados Tipos de Dados C possui diversos tipos de dados, mas parte deles são baseados em tipos básicos: Caractere (char); Inteiro (int); Ponto flutuante (float); Ponto flutuante de dupla precisão (double); Void (sem valor); Ponto flutuante é a forma como o computador representa os números reais. Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 16 / 35 Declaração de variáveis e constantes Declaração de variáveis e constantes Uma variável é uma posição de memória que pode ser identificada por um nome; São utilizadas para guardar valores os quais manipulamos dentro dos nosso programas; Em C, qualquer variável deve ser declarada antes de ser utilizada; Variáveis podem ser declaradas em qualquer ponto do programa; #include <stdio.h> int main () { int idade; double media; } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 17 / 35 Declaração de variáveis e constantes Declaração de variáveis e constantes Depois de declaradas, podemos modificar os valores das variáveis através de comandos de atribuição; Em C, o operadorde atribuição é o “=”; #include <stdio.h> int main () { int idade; idade = 10; } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 18 / 35 Declaração de variáveis e constantes Declaração de variáveis e constantes Constantes são identificadores que não podem ter seus valores alterados durante a execução do programa; As constantes podem ser de qualquer um dos cinco tipos básicos; Devem estar definidas no cabeçalho do programa; Constantes são criadas utilizando-se a diretiva #define; Não existe um ponto e vírgula após o valor da constante; #include <stdio.h> #define INSTITUICAO "IFRN" int main () { printf("Eu estudo no %s", INSTITUICAO); } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 19 / 35 Declaração de variáveis e constantes Declaração de variáveis e constantes Diferentemente da declaração de variáveis, no momento da criação de constantes, não informamos o tipo; O tipo de uma constante depende da maneira como o seu valor foi representado: Caracter: deve estar entre aspas simples; Cadeia de caracteres: devem estar entre aspas duplas; Inteiros: são números sem parte fracionária; Ponto flutuante: são números com a parte decimal (utilizamos o ponto, por exemplo, 10.9); #include <stdio.h> #define INSTITUICAO "IFRN" #define PI 3.1415 #define QTD_DE_DIAS_DA_SEMANA 7 Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 20 / 35 Comandos de entrada de dados Comandos de entrada de dados scanf(): utilizaremos para ser inteiros, caracteres, cadeias de caracteres com apenas uma palavra e reais; gets() e fgets(): utilizaremos para ser cadeias de caracteres compostas por mais de uma palavra; Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 21 / 35 Comandos de entrada de dados Scanf Scanf Para utilizar o comando scanf devemos nos preocupar com duas coisas: Qual o tipo de dado que estou armazenando? Onde ele será armazenado? Diferente do Portugol, em C, precisaremos informar qual o tipo de dado estamos lendo e em qual endereço de memória ele será armazenado; #include <stdio.h> int main (){ int idade; scanf("%d", &idade); } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 22 / 35 Comandos de entrada de dados Scanf Scanf Para cada tipo de dado, tem-se um código que será utilizado na função scanf; Código Tipo de dado %d Lê um inteiro positivo ou negativo (base decimal) %c Lê um caractere %f Lê um número de ponto flutuante %s Lê uma cadeia de caracteres (string) É importante lembrar que estes não são os únicos códigos e tipos de dados que podem ser utilizados em C; Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 23 / 35 Comandos de entrada de dados Gets e Fgets Gets e Fgets Para compreendermos a fundo estas funções precisamos aprender antes o conceito de arranjos [3]; Então, inicialmente, não trabalharemos com a leitura de strings. Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 24 / 35 Comandos de saída de dados Comandos de saída de dados puts e putchar: utilizadas para imprimir cadeias de caracteres; puts, ao contrário de putchar, insere uma quebra de linha ao final da string. printf: permite imprimir valores que não são sequências de caracteres; Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 25 / 35 Comandos de saída de dados Printf Printf Podemos utilizar a função printf para imprimir tanto sequências de caracteres como variáveis do nosso programa; Da mesma maneira que a função scanf, devemos informar o tipo de dado que queremos imprimir; #include <stdio.h> int main (){ int idade; printf("Digite a sua idade\n: "); scanf("%d", &idade); printf("%d", idade); } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 26 / 35 Comandos de saída de dados Printf Operação de concatenação Operações de concatenação são realizadas em cadeias de caracteres; Se no exemplo anterior quiséssemos imprimir “A minha idade é 10.”, como faríamos?; #include <stdio.h> int main (){ int idade; printf("Digite a sua idade\n: "); scanf("%d", &idade); printf("A minha idade é %d", idade); } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 27 / 35 Operadores aritméticos Operadores aritméticos Podemos realizar cálculos com valores inteiros e reais; Sinal Descrição + Operador aritmético tradicional de soma. - Operador aritmético tradicional de subtração. * Operador aritmético tradicional de multiplicação. upslope Operador aritmético tradicional de divisão. O resultado pode ser um número real. % Operador de módulo ou resto da divisão. Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 28 / 35 Operadores aritméticos Operadores de Incremento e Decremento Também realizamos cálculos com valores inteiros e reais; Sinal Descrição ++ Operador de incremento. – – Operador decremento. int main (){ int a = 1; printf("a = %d", a++); // a = 1 printf("a = %d", ++a); // a = 3 } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 29 / 35 Operadores aritméticos Operadores Compostos O operador “=” pode ser combinado com outros operadores; Sinal Descrição a += b a = a + b a –= b a = a - b a *= b a = a * b a /= b a = a / b a %= b a = a % b Note que o operador que está combinado ao “=” sempre está mais a esquerda. Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 30 / 35 Operadores aritméticos Biblioteca math.h É um biblioteca que contém diversas funções matemáticas: Potenciação: pow(); Raiz quadrada: sqrt(); Entre outras: seno, cosseno, tangente, logaritmos, etc. Para utilizá-la, não podemos esquecer de incluí-la nas diretivas! #include <stdio.h> #include <math.h> int main (){ int a, b; scanf("%d", &a); scanf("%d", &b); printf("‘a’ elevado a ‘b’ é %f", pow(a, b)); } Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 31 / 35 Operadores aritméticos Precedência de operadores Precedência de operadores Assim como na matemática, os nossos programas também irão considerar a precedência de operadores; 2 + 2 * 5 ? 5 * 8 + 4 / 2 ? A multiplicação e a divisão são resolvidas antes da soma e da subtração; Para evitar ambiguidades e erros, use parênteses!; (2 + 2) * 5 ? 5 * ((8 + 4) / 2) ? Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 32 / 35 Ambiente de desenvolvimento Ambiente de desenvolvimento Dev-C++ [1]: É um ambiente de desenvolvimento integrado para as linguagens de programação C/C++; É um software free; Disponível em www.bloodshed.net/dev/devcpp.html Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 33 / 35 Ambiente de desenvolvimento REFERÊNCIAS BloodshedSoftware. Bloodshed dev-c++ 5, 2014. Disponível em http://www.bloodshed.net/devcpp.html. Paul Deitel and Harvey Deitel. C: Como Programar. Pearson, 6 ed edition, 2011. Herbert Schildt. C Completo e Total. Makron Books, 1996. Daniel Aguiar da Silva Carvalho (IFRN) Introdução à Linguagem de Programação C 13 de Janeiro de 2014 34 / 35 Introdução Linguagem de programação C Qual é a diferença de Portugol e C? Histórico Características da linguagemEstrutura de um programa Diretivas A função main Comentários Identificadores Palavras reservadas Tipos de Dados Declaração de variáveis e constantes Comandos de entrada de dados Scanf Gets e Fgets Comandos de saída de dados Printf Operadores aritméticos Precedência de operadores Ambiente de desenvolvimento
Compartilhar