Baixe o app para aproveitar ainda mais
Prévia do material em texto
Linguagem de Programação Aula 1 – Introdução a Linguagem de Programação C Prof.: Teresinha Letícia da Silva leticia@cafw.ufsm.br UFSM COLÉGIO AGRÍCOLA DE FREDERICO WESTPHALEN CURSO SUPERIOR DE TECNOLOGIA EM SISTEMAS PARA INTERNET Lógica de Programação Prof. Teresinha Letícia da Silva Objetivos da disciplina Definir os componentes básicos de um programa: Áreas de um programa. Tipos de dados. Variáveis, constantes, operadores aritméticos e expressões. Estruturas de Controle: atribuição, seqüência, seleção, repetição. Vetores, matrizes. Metodologias de desenvolvimento de Programas. Uso de linguagens de programação imperativa. Testes de programas. Documentação. Lógica de Programação Prof. Teresinha Letícia da Silva Conteúdo programático UNIDADE 1 – INTRODUÇÃO 1.1 – Histórico das Linguagens de Programação. UNIDADE 2 – DADOS 2.1 - Elementos da Linguagem. 2.2 - Tipos de Dados. 2.3 - Constantes e Variáveis. 2.4 – Operadores. UNIDADE 3 - ESTRUTURA DO PROGRAMA 3.1 - Identificação do Programa. 3.2 - Bloco de Declarações. 3.3 - Bloco de Comandos. 3.4 - Exemplo de Estrutura de um Programa. UNIDADE 4 – COMANDOS 4.1 – Comandos Simples. 4.2 – Estruturas de Controle. UNIDADE 5 – FUNÇÕES 5.1 – Funções. 5.2 – Parâmetros. 5.3 – Recursividade. UNIDADE 6 – TIPOS ESTRUTURADOS 6.1 – Tipos Estruturados Homogêneos. 6.2 – Tipos Estruturados Heterogêneos. UNIDADE 7 – ARQUIVOS 7.1 – Manipulação de Arquivos e Registros. Lógica de Programação Prof. Teresinha Letícia da Silva Bibliografia BIBLIOGRAFIA BÁSICA SCHILDT, H. C Completo e Total. 3. Ed. São Paulo: Makron Books, 1997. DAMAS, L. Linguagem C. 10. Ed. Rio de Janeiro: LTC, 2007. HARBISON III, S. P.; STEELE Jr., G. L. C: Manual de Referência 1. Ed. Rio de Janeiro: Ciência Moderna, 2002. BIBLIOGRAFIA COMPLEMENTAR MANZANO, J. A. N. G. Estudo Dirigido de Linguagem C. 11. Ed. São Paulo: Érica, 2002. ARAÚJO, J. Dominando a Linguagem C. 1. Ed. Rio de Janeiro: Ciência Moderna, 2004. KERNIGHAN, B. W.; RITCHIE, D. M. C: a Linguagem de Programação. 1. Ed. Rio de Janeiro: Campus, 1986. KERNIGHAN, B. W.; RITCHIE, D. M. C: a Linguagem de Programação - Padrão Ansi. 1. Ed. Rio de Janeiro: Campus, 1989. Lógica de Programação Prof. Teresinha Letícia da Silva Avaliação Nota 1 Prova 1 (70%) Trabalho/Atividades (30%) Nota 2 Prova 2 (70%) Trabalho/Atividades (30%) Lógica de Programação Prof. Teresinha Letícia da Silva Linguagens de Programação Uma linguagem de programação é um método padronizado para expressar instruções para um computador. É um conjunto de regras sintáticas e semânticas usadas para definir um programa de computador. Uma linguagem permite que um programador especifique precisamente sobre quais dados um computador vai atuar, como estes dados serão armazenados ou transmitidos e quais ações devem ser tomadas sob várias circunstâncias. O conjunto de palavras (tokens), compostos de acordo com essas regras, constituem o código fonte de um software. Esse código fonte é depois traduzido para código de máquina, que é executado pelo processador. Lógica de Programação Prof. Teresinha Letícia da Silva Sintaxe = Forma A sintaxe são as regras que definem o formato de uma linguagem, estabelecendo com são compostas e combinadas suas palavras. Compõe-se de: Regras léxicas que descrevem combinações de caracteres válidas para formar os tokens(palavras reservadas, operadores, comandos); E regras sintáticas que descrevem como as palavras podem ser combinadas para formar instruções válidas. Lógica de Programação Prof. Teresinha Letícia da Silva Semântica = Significado A semântica diz respeito ao significado das construções sintáticas; Um programa pode estar sintaticamente correto mesmo com erros semânticos. Erros semânticos comuns ... Utilizar uma variável que não foi declarada; Acessar uma posição inválida em uma lista (vetor); Atribuir um conteúdo inválido em uma variável; Lógica de Programação Prof. Teresinha Letícia da Silva Linguagens Interpretadas Em uma linguagem de programação interpretada um programa é executado instrução a instrução; O comando precisa ser primeiramente traduzido para linguagem de máquina para só então executado; Sua execução é necessariamente mais lenta que linguagens que são executadas diretamente em código de máquina (em função da etapa de tradução); O código-fonte precisa ficar disponível para ser interpretado; Lógica de Programação Prof. Teresinha Letícia da Silva Linguagens Compiladas Em uma linguagem compilada o programa é executado somente após toda sua tradução ter sido completada; Somente o programa executável precisa ser disponibilizado (o código-fonte não é necessário para a execução); Lógica de Programação Prof. Teresinha Letícia da Silva Linguagem de Programação C A linguagem C foi criada por Dennis Ritchie, em 1972, no centro de Pesquisas da Bell Laboratories. Sua primeira utilização importante foi a reescrita do Sistema Operacional UNIX, que até então era escrito em assembly. O C é uma linguagem de propósito geral, no entanto é mais utilizada escrever compiladores, analisadores léxicos, bancos de dados, editores de texto, etc.. Suas características são: portabilidade, modularidade, compilação separada, recursos de baixo nível, geração de código eficiente, confiabilidade, regularidade, simplicidade e facilidade de uso. Lógica de Programação Prof. Teresinha Letícia da Silva Características Imperativa (baseada em um programa principal que eventualmente executa sub-rotinas); Compilada (produz um executável independente); Fortemente tipada (as variáveis precisam ser declaradas com seus tipos de dados associados); Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Estrutura básica de um Programa em C Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Bibliotecas Conjunto de funções para realizar tarefas específicas. Biblioteca padrão C - ANSI - funções básicas. As primeiras linhas do programa indicam as bibliotecas utilizadas #include “minha_biblioteca.h” ou #include <minha_biblioteca.h> Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Bibliotecas <stdio.h> Manipulação de entrada/saída. <stdlib.h> Diversas operações, incluindo conversão, geração de números pseudo-aleatórios, alocação de memória, controle de processo, sinais, busca e ordenação. <math.h> Funções matemáticas comuns em computação. <string.h> Tratamento de cadeia de caracteres. <time.h> Conversão de tipos de dado de data e horário. Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Função main() Um programa escrito na linguagem de programação C consiste em uma coleção de funções. A função main() é a função principal, ou seja, a primeira a ser executada. O termo int define a função main() como sendo uma função que retorna um número inteiro. A função main() pode ou não receber parâmetros. Cada programa em C deve ter uma função main(). Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Bloco de instruções e comentários Um bloco de instruções em C é delimitado pelos caracteres { }, indicando início e fim de bloco respectivamente. Após cada comando dentro do bloco de instruções deve ser colocado um finalizador de comando que é o ; (ponto- e-vírgula) Os comentários podem ser escritos em qualquer parte do código, os delimitadores de comentário são: /* */ para comentários com mais de uma linha // para comentários de uma linha Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Primeiro Programa /* Primeiro Programa emC */ #include <stdio.h> //biblioteca de E/S int main() /*função principal – inicio do programa*/ { /*marca início da função*/ printf(“Meu primeiro programa em C”); /*função para escrever na tela*/ } /*marca fim da função*/ Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Variáveis Uma declaração de variável consiste do nome do tipo seguido do nome da variável (em C e C++). Todas as variáveis devem ser declaradas antes de serem usadas. As variáveis devem ser declaradas no início de cada bloco ou no início do programa. Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Nomes de Variáveis comece com letras ou sublinhado: Seguidos de letras, números ou sublinhados C é Case sensitive: peso <> Peso <> pEso O padrão C atual especifica que nomes de até 31 caracteres devem ser aceitos. Alguns compiladores podem até aceitar nomes maiores que isso, mas não considere isso uma regra e não use nomes tão longos. não podemos definir um identificador com o mesmo nome que uma palavra chave auto static extern int long if while do ...... Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Tipos Básicos de Dados determinar um conjunto de valores e as possíveis operações realizadas sobre os mesmos ; informa a quantidade de memória (bytes); Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Operadores aritméticos Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Operadores de atribuição Em C e C++ temos os seguintes operadores de atribuição: = += –= *= /= %= Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Operadores relacionais e lógicos Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Operadores de incremento e decremento Em C e C++ também temos os operadores de incremento e decremento: ++ incremento de um -- decremento de um Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comandos de Entrada e Saída A função “printf()” A função “printf” é a função para saída formatada de dados. SINTAXE: printf(“<string de controle>“,<lista de argumentos>); Exemplo: printf("Este é um programa em C"); Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comandos de Entrada e Saída Além de códigos de formato e caracteres normais a string de controle pode conter ainda caracteres especiais iniciados pelo símbolo “\” \n nova linha \t tabulação \b retrocesso (backspace) \” aspas \\ barra \0 nulo \a sinal sonoro Exemplo: printf("Este é um programa em C. \n Este texto estará em uma nova linha."); Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comandos de Entrada e Saída Para escrever o valor de uma variável deve-se especificar onde o valor da variável deve ser impresso. Isso é feito através da especificação do código de formato e definição de qual variável imprimir. Isso é feito dando-se mais um argumento à função printf(). Exemplo: printf(“O valor da variável é %d”, variavel); Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comandos de Entrada e Saída Códigos de formato: %c caracter simples %d decimal %f ponto flutuante %ld inteiro “longo” %o octal %s cadeia de caracteres %x hexadecimal %lf double Deve haver uma variável ou constante para cada código de formato! O tipo das variáveis ou constantes também deve coincidir com os códigos de formato. printf(“%d %f %c %lf”, a,b,c,d); Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comandos de Entrada e Saída A função “scanf()” É a função de entrada formatada de dados pelo teclado. Sua sintaxe é similar à da função “printf“. SINTAXE: scanf(“<expr. de controle>“, <lista de argumentos>); A expressão de controle pode conter tanto códigos de formatação precedidos pelo sinal “%”, que indicam o tipo dos dados a serem lidos, como caracteres de espaçamento. Exemplo: scanf(“%d”,&variavel); Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Operador de Endereço & Um endereço de memória é o nome que o computador usa para identificar uma variável Toda variável ocupa uma área de memória e seu endereço é o primeiro byte por ela ocupado Quando usamos & precedendo uma variável estamos falando do endereço desta variável na memória Lógica de Programação Prof. Teresinha Letícia da Silva Exercício Faça um programa em C para ler um número inteiro, que tenha no máximo três dígitos, e escrever a saída da seguinte forma: CENTENA = x Exemplo: 157 DEZENA = x Centena = 1 UNIDADE = x Dezena = 5 Unidade = 7 Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Estruturas de Decisão Permitir testes para decidir ações alternativas: if if - else switch (?:) Operador Condicional Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comandos condicionais Estrutura if O comando if é usado para executar um segmento de código condicionalmente. A forma mais simples do comando if é: if (expressão) ação; #include <stdio.h> int x; int main() { x = 10; if (x>15) { printf("X é maior que 15\n"); } } Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comandos condicionais Estrutura if No caso do comando if-else o programa pode ter duas ações distintas. Se a expressão for verdadeira, será executado o conjunto de ações do comando1. Se for falsa será executado o conjunto de ações do comando2. if (expressão) { comando1; } else { comando2; } #include <stdio.h> int x, y; int main() { x = 10; y = 20; if (x>15 && y>15) { printf("X e Y são maiores que 15\n"); } else { printf("X e Y não são maiores que 15\n"); } } Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comandos condicionais Estrutura if O comando if não necessita de uma expressão lógica no lugar do teste. Em C, qualquer expressão que resultar ZERO será considerada como FALSA e qualquer outro valor é considerado VERDADEIRO. Em C também temos o comando if – else if - else que é freqüentemente utilizado para executar múltiplas comparações sucessiva. Sua forma geral é: if (expressão1) ação1; else if (expressão2) ação2; else ação3; Deve-se tomar cuidado com os comando if-else aninhados. O else sempre está associado ao if mais próximo dentro do mesmo nível de comandos. Blocos mais internos não são considerados. Lógica de Programação Prof. Teresinha Letícia da Silva Exercício Uma pessoa, ao realizar uma compra em um supermercado, recebe um número da sorte para concorrer a um prêmio no final do mês. O cálculo do número da sorte é feito da seguinte forma: a) Caso a compra seja inferior a R$500,00 o número da sorte = 5000 - Valor da compra * Idade b) Caso a compra seja superior a R$500,00 o número da sorte = 50000 - Valor da compra * Idade c) Caso a compra seja igual a R$500,00 o número da sorte = Idade * Idade Faça um algoritmo que receba o Valor Total da Compra e o Ano de Nascimento e informe ao usuário qual foi seu número da sorte. Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comando de Seleção múltipla: SWITCH ou CASE Quando se deseja testar uma variável ou uma expressão em relação a diversos valores usamos o comando de seleção múltipla. O valor da expressão seletora é comparado com cada elemento da lista de valores. Se existir um valor igual será executada somente a seqüência relacionada ao valor. Caso contrário, ou nenhuma seqüência será executada, ou a seqüência relacionadaá cláusula padrão será executada se ela existir. Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comando de Seleção múltipla: SWITCH ou CASE Sua sintaxe é: switch (expressão) { case <valor1>: <comandos1>; break; case <valor2>: <comandos2>; break; ... case <valor n>: <comandos n>; break; default: <comandos_padrão>; } Lógica de Programação Prof. Teresinha Letícia da Silva Exercício Escreva um algoritmo para ler um valor inteiro de 1 a 7 e escrever a descrição do dia da semana correspondente. Caso o valor digitado esteja fora desse intervalo o usuário deverá ser alertado. Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comando ?: Forma compacta de expressar uma instrução if – else (condição) ? expressão1 : expressão2 Max = (num1 > num2) ? num1 : num2 Note: if (num1 > num2) max = num1; else max = num2; Exemplo: ABS = (num < 0) ? - num : num; Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comando for for (<início>;<condição>;<incremento>) <comando>; Na forma mais simples: • Inicialização: • expressão de atribuição • sempre executada uma única vez • Teste: • condição que controla a execução do laço • é sempre avaliada a cada execução • verdadeiro continua a execução • falso para a execução Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comando for •Incremento: • define como a variável de controle será alterada • é sempre executada após a execução do corpo do laço Exemplo: imprimindo números pares #include<stdio.h> main ( ) { int numero; for ( numero = 2; numero < 10; numero += 2 ) printf (“ %d”, numero); } Saída 2 4 6 8 Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comando for Flexibilidade: qualquer expressão de um laço “for” pode conter várias instruções separadas por vírgula. for (x=0,y=0;x+y<100;++x,y=y+x) printf(“%d”,x+y); Esta instrução inicializaria x e y com zero, incrementando x de 1 em 1 e y receberia seu valor acrescido do de x. O resultado a cada iteração seria impresso desta forma: 0 (x=0 e y=0) 2 (x=1 e y=1) 5 (x=2 e y=3) 9 14 e assim sucessivamente. Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comando for – Loop Vazio A presença do ponto e vírgula finalizando o comando, força a execução do loop sem que seja executado qualquer outro comando. for(i=0;i<10;i++); Lógica de Programação Prof. Teresinha Letícia da Silva Exerício Faça um programa em C que escreve os números múltiplos de 7 entre 100 e 200, bem como a soma destes números. Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comando While while <condição> <comando>; Exemplo: Contagem #include <stdio.h> main() { int i=0; while (i < 10) { printf(“%d”,i); i++; } } • O loop se repete, enquanto a condição for verdadeira Lógica de Programação Prof. Teresinha Letícia da Silva Revisão... Comando do - while Ao contrário das estruturas “for” e “while” que testam a condição no começo do loop, “do / while” sempre a testa no final, garantido a execução ao menos uma vez da estrutura. do { <comandos>; } while <condição>; Exemplo: Término determinado pelo usuário. #include <stdio.h> main() { int num; do { scanf(“%d”,&num); } while (num < 100); } Lógica de Programação Prof. Teresinha Letícia da Silva Exercício Faça um programa que, para um número indeterminado de pessoas: leia a idade de cada pessoa, sendo que a leitura da idade 0 (zero) indica o fim dos dados e não deve ser considerada; - calcule e escreva o número de pessoas; - calcule e escreva a idade média do grupo; - calcule e escreva a menor idade e a maior idade.
Compartilhar