Baixe o app para aproveitar ainda mais
Prévia do material em texto
PROGRAMAÇÃO II AULA 2 – PRIMEIROS PASSOS CIÊNCIA DA COMPUTAÇÃO SÚMARIO O Histórico da linguagem C; O ambiente de desenvolvimento; A programação em C; 2 HISTÓRIA DO C O C foi desenvolvido a partir de duas linguagens anteriores: BCPL (1967 – Martin Richards); B (1970 – Ken Thonpson); Linguagens “typeless”; A linguagem C foi desenvolvida a partir do B! Amplamente conhecida como a linguagem de desenvolvimento do sistema operacional UNIX; Disponível para a maioria dos computadores; Independe do hardware; 3 HISTÓRIA DO C Permitiu a escrita de um sistema operacional, utilizando uma linguagem de relativo alto nível! Devido às suas capacidades divulgadas através da criação de um sistema operacional, a linguagem disseminou-se e tornou-se conhecida por todos os tipos de programadores Marco importante: O Livro“The C Programming Language” de Kernighan & Ritchie; A expansão do C várias variantes da linguagem Problema sério! Incompatibilidade entre diferentes plataformas; Ficou claro que era necessário uma versão padrão do C; Em 1983, o American National Standards Institute (ANSI) formou um comité para a definição de um padrão para linguagem C; C ANSI; 4 RAZÕES PARA PROGRAMAR EM C A maior parte das linguagens tem um objetivo a atingir COBOL: Processamento de Registros; PASCAL: Ensino de técnicas de programação; FORTRAN: Cálculo Científico; LISP e PROLOG – Vocacionais para as áreas de Inteligência Artificial; ... Quanto ao C, qual área de desenvolvimento a que se destina? O C é uma linguagem extremamente potente e flexível! 5 RAZÕES PARA PROGRAMAR EM C Rapidez: Consegue obter performances semelhantes às obtidas pelo Assembly; Simplicidade: A sua sintaxe é extremamente simples e o número de palavras reservadas, tipos de dados básicos e operadores é diminuto; Portabilidade: Padrão (ANSI); Popular: È internacionalmente conhecida; Modular: Permite o desenvolvimento modular das aplicações; 6 RAZÕES PARA PROGRAMAR EM C Alto Nível: O C é considerada uma linguagem de 3ª geração, de alto nível se comparado com Assembly Contudo, o C permite ainda o acesso à maior parte das funcionalidades do Assembly; Evolução: O C é uma linguagem particularmente estável; A evolução das linguagens, fez com que também o C evoluísse no sentido das linguagens Orientadas a objetos Linguagem C++ Mantém a sintaxe da linguagem C e permite um conjunto adicional de características (encapsulamento, polimorfismo, etc...); JAVA 7 COMPILADORES C Existem diversos compiladores C/C++ disponíveis para os programadores. A decisão sobre qual utilizar pode ser baseada em vários fatores, como por exemplo: Qualidade do Compilador é rápido, está padronizados de acordo com a linguagem, a interface é agradável – possui ou não uma IDE, possui diversas opções de compilação; Sistema Operacional; Custo do compilador; Documentação disponível e suporte; 8 COMPILADORES C Compilador DEV-C++ Free; Windows (O mais recomendado); IDE respeitável (editor, compilador e debug integrados); Compilador GCC (GNU Compiler Collection) Compilador padrão do sistema operacional linux; Compilador utilizado para no desenvolvimento do próprio sistema operacional e de todas ferramentas nele disponíveis (compilador „nativo‟ do linux); Compilador C++ Builder Compilador da Borland; Pago; 9 •IDE LINUX • Geany • Anjuta COMPILADORES C Compilador Turbo C Borland; Roda no MS-DOS; Um dos mais antigos; Muito simples, contudo funciona perfeitamente para as várias versões do Windows; Gratis; Compilador Visual C# Microsoft; Possui um bom número de usuários; http://www.microsoft.com/brasil/msdn/csharp/default.m spx Com relação aos compiladores: todos os compiladores que podem compilar programas C++ também podem compilar programas C. 10 INSTALANDO O DEV C++ Baixe a versão completa, que vem com o compilador http://sourceforge.net/projects/dev-cpp/files/Binaries/Dev- C%2B%2B%204.9.9.2/devcpp-4.9.9.2_setup.exe/download Padrão Windows de instalação Next Next Next Finish Primeira utilização, é necessária uma pequena configuração (Idioma: Portugués) 11 DEV C++ INICIANDO 12 PROGRAMANDO......... Crie um novo projeto! Novo Projeto Console Application, Nome do Projeto, Selecionar Projeto C 13 O C É “CASE SENSITIVE” MAIÚSCULAS e minúsculas fazem diferença!!!!!!! soma <> Soma <> sOma <> somA; Comandos também, for <> FOR* PRIMEIRO PROGRAMA – ANALISANDO 14 Erro Comum Usar letra maiúscula onde devia ser usada uma letra minúscula (Ex: Main em vez de main); system(“PAUSE”); ANALISANDO O CÓDIGO IMPORTANTE: Quando fazemos um programa, uma boa idéia é usar comentários que ajudem a elucidar o funcionamento do mesmo; /* */; //; A linha #include<stdio.h> Incluir o arquivo cabeçalho stdio.h; Incluir sempre que necessário; O C tem vários Arquivos cabeçalhos; A linha int main() função com o nome main 15 ANALISANDO O CÓDIGO A única coisa que o programa realmente faz é chamar o printf(); Passando a string a ser impressa na tela! include <stdio.h>; \n constante de \ invertida; return(0); Os comandos em C terminam com ; 16 17 PRÁTICAS RECOMENDÁVEIS DE PROGRAMAÇÃO Todos os programas devem ser iniciados com um comentário que apresenta o autor, a descrição do programa e a data. Todas as funções devem ser precedidas por um comentário descrevendo seu objetivo; Faça um recuo de um nível (três espaços) em todo o texto (corpo) de cada função dentro das chaves que a definem. Isto ressalta a estrutura funcional do programa; Determine uma convenção para o tamanho de recuo preferido e então o aplique-a uniformemente; Não deve haver mais de uma instrução por linha; SEGUNDO PROGRAMA 18 ANALISANDO CÓDIGO Declaração de variáveis; printf(); Ler um dado fornecido pelo usuário e colocá-lo na variável inteira Dias; scanf() “%d” Ler um inteiro; Importância do &; Expressão matemática simples 19 EXERCÍCIOS O que faz o seguinte programa? Ele funciona? Se existir, onde está o erro? Compile e execute o programa desta página; 20 INTRODUÇÃO A FUNÇÕES Função é um bloco de código de programa que pode ser usado diversas vezes em sua execução. O uso de funções permite que o programa fique mais legível, mais bem estruturado. Um programa em C consiste, no fundo, em várias funções colocadas juntas. 21 INTRODUÇÃO A FUNÇÕES Função mensagem(); A principal diferença da função main(); 22 INTRODUÇÃO ÀS FUNÇÕES ARGUMENTOS Argumentos são as entradas que função recebe Passagens de parâmetros; Ex: printf() e scanf(); 23 INTRODUÇÃO ÀS FUNÇÕES ARGUMENTOS square() receberá um inteiro x; Satisfazer aos requisitos da função; O nome da variável que se passa como argumento não é importante; num se transformará em variável x; Mudança de valor em x não reflete mudança de valor em num; Agora um exemplo de função com mais de uma variável. Argumentos são separados por virgula; Constantes podem ser passadas como parâmetros; 24 INTRODUÇÃO ÀS FUNÇÕES RETORNANDO VALORES Especificar o tipo de retorno e utilizar a palavra reservada return; E se não especificarmos o tipo de retorno de uma função? Inteiro Não é uma boa prática No main() o retorno será sempre inteiro; Retorno 0 :) Um exemplo de função com retorno;25 tipo_de_retorno nome_da_função(lista_de_argumentos) 26 INTRODUÇÃO ÀS FUNÇÕES FORMA GERAL EXERCÍCIOS • Escreva uma função que some dois inteiros informados pelo usuário e retorne o valor da soma; INTRODUÇÃO BÁSICA ÁS E/S CARACTERES Tipo de dado: char O C trata os caracteres („a‟, „b‟,‟c‟,...) como sendo variáveis de um byte (8 bits); Para indicar um caractere de texto usamos apóstrofes; Veja um exemplo de programa; Observe a utilização do %c; Char também é usado para armazenar um inteiro Código ASCII; 27 INTRODUÇÃO BÁSICA ÁS E/S GETCH GETCHE Muitas vezes queremos ler um caractere fornecido pelo usuário. Getch() Getche() Imprime o caractere em tela; Somente em DOS; #include <conio.h>; Diferença entre a utilização do getche() e do getch; 28 INTRODUÇÃO BÁSICA ÁS E/S STRINGS No C uma string é um vetor de caracteres terminado com um caractere nulo; Terminador nulo „\0‟; Para declarar um string usamos o seguinte formato geral: Declarar com o comprimento mínimo + 1 „\0‟; 29 INTRODUÇÃO BÁSICA ÁS E/S STRINGS Duas célula não são usadas; Ler string fornecida pelo usuário gets(). A função gets() coloca o terminador nulo; 30 MAX 99 caracteres; “Indexarmos” str[1] = „a‟; Segunda letra; INTRODUÇÃO BÁSICA ÁS E/S STRINGS Na linguagem C, o índice começa em 0. Primeira letra de uma string está sempre na posição 0; 31 Terminador nulo pos 4; Inicialização de string Str[10] = “Joao”; String constante “ ”; %s coloca uma string na tela; INTRODUÇÃO BÁSICA ÁS E/S PRINTF Tem a seguinte forma geral: Na string de controle, temos uma descrição de tudo que a função vai colocar na tela; Caracteres Quais variáveis e suas respectivas posições. Códigos de controle %; Para cada código de controle uma entrada na lista de arg; 32 INTRODUÇÃO BÁSICA ÁS E/S PRINTF Veja alguns exemplos de printf() printf(“Teste %% %%”); printf(“%f”,40.345); printf(“Um caractere %c e um inteiro %d”, „D‟, 120); printf(“%s e um exemplo”, “Este”); printf(“%s%d%%”, “Juros de “, 10); 33 Erro Comum. Preceder uma variável, incluída em uma instrução printf, de um &; INTRODUÇÃO BÁSICA ÁS E/S PRINTF Veja alguns exemplos de printf() printf(“Teste %% %%”); “Teste % %”; printf(“%f”,40.345); “40.345”; printf(“Um caractere %c e um inteiro %d”, „D‟, 120); “Um caractere D e um inteiro 120”; printf(“%s e um exemplo”, “Este”); Este e um exemplo”; printf(“%s%d%%”, “Juros de “, 10); “Juros de 10%” 34 INTRODUÇÃO BÁSICA ÁS E/S SCANF Formato geral da função scanf() é: Pedir dados ao usuário; Nunca esquecer de colocar & antes das variáveis da lista de argumentos; EXERCÍCIOS Escreva um programa que leia um inteiro digitado pelo usuário, imprima o inteiro digitado e também seu valor como caractere ASCII correspondente; Escreva um programa que leia duas strings. Imprima as duas strings, porém as cinco primeiras posições devem ser trocadas entre as strings; 35 ALGUNS COMANDOS DE CONTROLE DE FLUXO - IF Comando de controle de fluxo permitem ao programador alterar a sequência de execução do programa; IF tomada de decisão SE isto ENTÃO aquilo If (expressão) Se resultado igual a 0, declaração não será executada; != de zero declaração é executada; Código exemplo 36 ALGUNS COMANDOS DE CONTROLE DE FLUXO - IF If com um comando e if com mais de um comando; { } bloco de código; Para testar igualdade utilizamos == e não =; O operador = representa apenas uma atribuição; If(num = 10) { bloco de código} ERRADO!!!!!!! Os operadores de comparação são: == (igual), != (deferente), >(maior que), <(menor que), >=(maior igual), <=(menor igual). 37 Erro de sintaxe, se !=, >= e <= forem invertidos; ALGUNS COMANDOS DE CONTROLE DE FLUXO - FOR Repetir um comando, ou bloco de comandos diversas vezes Sua forma geral é A declaração pode ser um bloco ({ }) ou somente um comando. Como um for funciona: 38 ALGUNS COMANDOS DE CONTROLE DE FLUXO - FOR O for sempre executa a inicialização incondicionalmente e testa a condição. Caso seja verdadeira, executará a declaração, o incremento e volta a testar a condição; Exemplo 1. Um programa que coloca os primeiros 100 números na tela; Exemplo 2. Um programa que lê uma string e conta quantos caracteres desta string são iguais a c; Exemplo 3. Faça um programa que imprima o alfabeto: letras maiúsculas 39 PALAVRAS RESERVADAS DO C Todas as linguagens têm palavras reservadas Não devem ser utilizadas; A não ser nos seus propósitos originais Como o C é case-sensitive, podemos declara uma variável For (Mas não é recomendável); 40 PRÁTICAS RECOMENDÁVEIS DE PROGRAMAÇÃO O último caractere impresso por uma função que realiza qualquer impressão deve ser uma nova linha \n; Embora a inclusão de <stdio.h> seja opcional, ela deve ser feita em todos os programas em C que utilizam entrada e saída. Isto ajuda o compilador a encontrar erros; Coloque espaço depois de cada virgula, para tornar o programa mais légivel; Coloque espaços em ambos os lados de um operador. Isto faz com que o operador seja ressaltado 41 ERROS COMUNS DE PROGRAMAÇÃO O cálculo de uma instrução de atribuição deve estar no lado direito do operador =; Esquecer-se de uma ou ambas as aspas duplas em torno de uma string de controle de formato de printf ou scanf; Erros não-fatais permitem que os programas seja executados até o final produzindo resultados incorretos (divisão por zero == erro fatal); 42 EXERCÍCIOS Escreva um programa que leia uma String, conte quantos caracteres desta string são iguais a „a‟ e substitua os que forem iguais a „a‟ por „b‟. O programa deve imprimir o número de caractere modificados e a string modificada; Escreva um programa que coloque os números pares de 1 a 1000 na tela em ordem inversa (começando em 1000 terminando em 1) 43
Compartilhar