INTRODUÇÃO À LINGUAGEM C

Documentos relacionados
Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação. Profa Rosana Braga

O COMPUTADOR. Introdução à Computação

Programação de Computadores I Introdução ao C PROFESSORA CINTIA CAETANO

#include <stdio.h> Void main() { printf( Cheguei!\n"); } INTRODUÇÃO A LINGUAGEM C

A linguagem C (visão histórica)

Algoritmos e Programação

Universidade Estadual de Mato Grosso do Sul Ciência da Computação Algoritmos e Estruturas de Dados I (AED-I) Prof. Nilton

Linguagem C. Introdução à Programação C. Variáveis. Identificadores. Identificadores VARIÁVEIS E TIPOS DE DADOS

Estruturas da linguagem C. 1. Identificadores, tipos primitivos, variáveis e constantes, operadores e expressões.

Linguagem de Programação. Thiago Leite Francisco Barretto

LINGUAGEM C: VARIÁVEIS E EXPRESSÕES

Programação Estruturada

Tópicos em C. Eliade F. Lima

Programação 1. Atribuição, operadores aritméticos, entrada de dados. Técnico em Eletrônica Semestre 5 02

3. Linguagem de Programação C

Linguagem C Princípios Básicos (parte 1)

Anhanguera Educacional S.A. Centro Universitário Ibero-Americano

Linguagens de Programação I

Introdução à Linguagem C

Linguagens de Programação PROGRAMAÇÃO DE COMPUTADORES. Linguagem C. Linguagem C Estrutura Básica. Constante (literais) Linguagem C Primeiro Programa

Conhecendo a Linguagem de Programação C

Cláudio C. Rodrigues Faculdade da Computação - UFU. Faculdade da Computação - UFU 1

Linguagens de Programação

SSC304 Introdução à Programação Para Engenharias. Introdução a Linguagem C. GE4 Bio

Programação I A Linguagem C. Prof. Carlos Alberto

Introdução à Programação C. Introdução à Ciência da Computação I Prof. Jó Ueyama

Laboratório de Introdução à Ciência da Computação I

Linguagem de Programação C

Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C. Linguagem de Programação C

Programação Estruturada Aula - Introdução a Linguagem C

Estrutura de Programas e Tipos de Dados Simples

Algoritmos e Introdução à Programação. Lógica e Linguagem de Programação

Entender o problema Encontrar um algoritmo para resolvê-lo. Implementar o algoritmo numa linguagem de programação

A Linguagem C. A forma de um programa em C

Introdução à linguagem C

Linguagem de Programação C. Prof. Fabrício Olivetti de França

Programação de Computadores

Linguagem de Programação C

Revisão Linguagem C Parte 1

Utilização da Linguagem C

Introdução à Linguagem C

Aula 03 - Linguagem C

Programação em C. Variáveis e Expressões. Universidade Federal do Rio Grande do Norte Departamento de Engenharia de Computação e Automação

Fundamentos de Programação 1

Conceitos de Linguagens de Programação - Características. Paavo Soeiro

Conceitos básicos. Computação eletrônica: Gurvan Huiban

Apostila de Linguagem C (Versão Incompleta)

Fundamentos de Programação1

Introdução à Programação. Introdução a Linguagem C. Prof. José Honorato F. Nunes

Linguagem C. IF61A/IF71A - Computação 1 Prof. Leonelo Almeida. Universidade Tecnológica Federal do Paraná

Hello World. Linguagem C. Tipos de Dados. Palavras Reservadas. Operadores Aritméticos. Pré e pós incremento e pré e pós decremento

Linguagem C: Introdução

3. Linguagem de Programação C

Laboratório de Introdução à Ciência da Computação I

TE091 Programação Orientada a Objetos Engenharia Elétrica

Fundamentos de Programação. Linguagem C++ Introdução, identificadores, tipos de dados. Prof. Bruno E. G. Gomes IFRN

INTRODUÇÃO A LINGUAGEM C

PLANO DE UNIDADE DIDÁTICA- PUD

Slides trabalhados durante a quinta aula

Aula 5 Oficina de Programação Introdução ao C. Profa. Elaine Faria UFU

RESUMO DE CONCEITOS BÁSICOS DE C

Conceitos Básicos de C

DELEGAÇÃO REGIONAL DO ALENTEJO CENTRO DE FORMAÇÃO PROFISSIONAL DE ÉVORA REFLEXÃO 5

Algoritmos e Estruturas de Dados I IEC012. Linguagem C - Guia de bolso - Prof. César Melo

ALGORITMOS AULA 01. Baseado nas aulas do Prof. Jorgiano Vidal

PROGRAMAÇÃO I E N T R A DA E S A Í DA D E DA D O S

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Introdução à Programação

3.1 - Funções para manipular dados de entrada e saída padrão

Introdução à Programação

Linguagens de Programação Conceitos e Técnicas. Amarrações

Linguagem C. André Tavares da Silva.

INSTITUTO FEDERAL DE! EDUCAÇÃO, CIÊNCIA E TECNOLOGIA RIO GRANDE DO NORTE

4. Estruturas Fundamentais de Programação em C

Laboratório de Introdução à Ciência da Computação I

Introdução à linguagem C

Características fundamentais de codificação de programas

Curso de C. Declaração de Variáveis 18/3/ :48 1

Ambiente de desenvolvimento

Linguagem de Programação I. Aula 06 Linguagem C: Tipos de Dados

Introdução à Ciência da Computação

USP - ICMC - SSC SSC o. Semestre Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

Aula 1 Apresentação do Curso

Características da Linguagem C

Introdução e Conceitos

Departamento de Sistemas de Computação Universidade de São Paulo Introdução a Ciência de Computação I. Aula 13 Arquivos

Introdução à Programação Aula 04. Prof. Max Santana Rolemberg Farias Colegiado de Engenharia de Computação

Programação Básica. Estrutura de um algoritmo

Variáveis, Comandos de Atribuição e Comando de Entrada e Saída

MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação

15/03/2018. Professor Ariel da Silva Dias Paradigma Imperativo

Linguagem C - Introdu ção

Disciplina de Introdução à Ciência da Computação ICC 1 - Teoria

Revisão C++ - Parte 1

MCTA028 Programação Estruturada Aula 01: - Introdução à linguagem C - Teste de avaliação

Introdução Linguagem C. UDESC - Prof. Juliano Maia 1

Transcrição:

Universidade de São Paulo São Carlos Instituto de Ciências Matemáticas e de Computação INTRODUÇÃO À LINGUAGEM C Material preparado pela profa Silvana Maria Affonso de Lara e utilizado por outros professores (Rosana Vaccari) 2º semestre de 2010

ROTEIRO DA AULA Revisão: Algoritmos e Programas Linguagens de Programação Fatores de Qualidade em Software Estilos de Programação Manutenção em Software Histórico da Linguagem C Estrutura de um programa em C Exemplo de programa C 2

REVISÃO: ALGORITMOS E PROGRAMAS Conceito central de programação ALGORITMO Programar é basicamente construir algoritmos Algoritmo: seqüência de comandos ou instruções que devem ser executados passo a passo em uma ordem específica Outro aspecto fundamental ESTRUTURAS DE DADOS 3

REVISÃO: ALGORITMOS E PROGRAMAS Principal dificuldade no entendimento de algoritmos Como visualizar as estruturas dinâmicas das possíveis execuções do algoritmo a partir da estrutura estática do texto do algoritmo. Exemplo: início {começo do algoritmo} real: N1, N2, N3, media; {declaração das variáveis} {corpo do algoritmo} escreva( Digite as 3 notas: ); leia(n1, N2, N3); media (N1+N2+N3)/3; escreva( A média é :, media); fim. {término do algoritmo} 4

LINGUAGENS DE PROGRAMAÇÃO Linguagem de Máquina (código binário) inicialmente, programadores trabalhavam diretamente com 1 s e 0 s: 000110011 = load,... Assembler (simbólico) uso de mnemônicos para as instruções: LD = load labels e variáveis Fortran (engenharia, aritmética) linguagem não estruturada ótimos compiladores para aritmética 5

LINGUAGENS DE PROGRAMAÇÃO Lisp (processamento simbólico - funcional) valor de uma expressão depende apenas de suas subexpressões originalmente sem atribuições (lambda (x) (* x x)) => x 2 Programação em Lógica - Prolog baseada em relações regras de produção: avô(joão,josé) :- pai(joão, X), pai(x, José); 6

LINGUAGENS DE PROGRAMAÇÃO Programação Algorítmica (imperativa) módulos, rotinas, sem goto s atribuições de variáveis e estruturas de dados fluxo de controle ex: Algol, Pascal, C Orientação a Objetos objetos: dados + funções herança, encapsulamento de dados, polimorfismo ex: C++, Smalltalk, Java 7

1950 --------------------------------------------------------------- Fortran Lisp 1960 ---------------------------------------------------------------- Cobol Algol-60 Simula PL/I Algol-68 1970 --------------------------------------------------------------- Smalltalk Pascal 1980 -------------------------------------------------------------- Ada C++ 1990 ------------------------------------------------------------- C ML Miranda Prolog 8

FATORES DE QUALIDADE EM SOFTWARE O que é um bom software? Que fatores influenciam ou determinam a qualidade de um programa? Um programa que funciona é um bom programa? Fatores externos e internos em qualidade de software 9

FATORES EXTERNOS (USUÁRIO) Facilidade de usar: interface simples e clara comandos não ambíguos Rapidez de execução Eficiência no uso de recursos (memória) Corretude: habilidade do software de executar corretamente as tarefas definidas através de especificações e requerimentos 10

FATORES EXTERNOS (USUÁRIO) Portabilidade: facilidade de transportar o software para outras plataformas Robustez: capacidade do software de executar em condições anormais ou inesperadas Integridade: capacidade de auto-proteção 11

FATORES INTERNOS (PROGRAMADOR) Legibilidade: facilidade de se entender o código Reusabilidade: facilidade de se reutilizar o software desenvolvido em novas aplicações Modularidade: sistema dividido em unidades conceituais que encapsulam informações relacionadas 12

FATORES INTERNOS (PROGRAMADOR) Extensibilidade: facilidade de introduzir novas funções e adaptar o software a mudanças nas especificações Testabilidade: facilidade com que o software pode ser depurado 13

MANUTENÇÃO DE SOFTWARE Melhoramentos 4% Documentação 6% Outros 3% Hardware 6% Depuração Rotineira 9% Mudanças na Especif icação 43% Bugs Emergenciais 12% Formato de Dados 17% 14

ESTILOS DE PROGRAMAÇÃO Otimização de código (assembler): escovando bits para aumentar performance, reduzir tamanho microcontroladores drivers Programação estruturada: centrada no algoritmo abordagem descendente (top-down) abordagem ascendente (bottom-up) 15

ESTILOS DE PROGRAMAÇÃO abordagem descendente (top-down) : decompor a tarefa principal em subtarefas refinar as subtarefas até encontrar tarefas mais simples codificar código dedicado ao problema abordagem ascendente (bottom-up) : implementar funções simples, de uso geral compor o programa a partir destas favorece reusabilidade (bibliotecas) 16

ESTILOS DE PROGRAMAÇÃO Programação modular centrada nos dados módulos contém dados e procedimentos encapsulamento, abstração, hierarquia 17

HISTÓRICO A LINGUAGEM C Origem de C está associada ao sistema Unix BCPL: desenvolvida por Martin Richards 1970: Ken Thompson desenvolve B, baseada em BCPL, para o primeiro Unix no DEC PDP-7 1972: Dennis Ritchie projeta a linguagem C, baseada na linguagem B. O sistema operacional Unix, o Compilador C e quase todos os aplicativos Unix são escritos em C!!! 1988: o American National Standard Institute (ANSI) define o padrão ANSI C 18

CARACTERÍSTICAS GERAIS linguagem de nível médio não é uma linguagem fortemente tipada uso intensivo de ponteiros definição de blocos { } pré-processador funções retornam valor e podem ser chamadas recursivamente 19

FLUXO DO COMPILADOR C Fonte C headers do sistema Pré-processador headers do usuário Compilador Montador Arquivos objeto do usuário Bibliotecas do sistema Arquivo Objeto Ligador Executável 20

Arquivo-FONTE /*******************************/ /* Primeiro exemplo arq exemplo1.c */ /*******************************/ #include <stdio.h> /* C padrão de Entrada/Saída */ /************************/ main () /* Comentários em C */ { printf ("exemplo nro %d em C!", 1); printf ( depois o %d! \n", 2); printf ("criatividade em baixa \n ); } source-file Compilador Outros Arquivos 0101001010000000 1111000101010010 0101100010010100 1110001100010000 1100010100000000 1111000101010010 0101100010010100 1110001100010000 1110000000010000 OBJETO/Bibliotecas libraries Arquivo-OBJETO object-file Link-editor 1111000101010010 0101100010010100 1110001100010000 1110000000010000 0000000010001010 1100010100000000 0011000100000010 1110000100000011 Arquivo-EXECUTÁVEL 21

ESTRUTURA DE UM PROGRAMA C Programa C Diretivas ao Pré-Processador - Includes - Macros Declarações Globais - Funções - Variáveis Definição das Funções main () { /* begin */ } /* end */ 22

EXEMPLO #include <stdio.h> #include <stdlib.h> #include <conio.h> #define FALSE 0 /* define F igual 0 */ #define TRUE 1 /* define T igual 1 */ int i = 0; void mostra_msg( void ); void main( ) { int resposta; printf( Quer ver a mensagem?\n" ); scanf( "%d", &resposta ); if( resposta == TRUE ) mostra_msg( ); else puts( "Goodbye for now." ); } void mostra_msg( void ) { clrscr( ); for( i = 0; i <=10; i++ ) printf( "Teste # %d.\n", i ); } 23

EXEMPLO - EXPLICAÇÃO # include <stdio.h> # include <stdlib.h> # include <conio.h> # define FALSE 0 /* define macro F igual 0 */ # define TRUE 1 /* define macro T igual 1 */ Diretivas ao Pré-processador #include <filename> indica ao pré-processador para incluir o arquivo filename antes da compilação os arquivos terminados em.h são chamados headers (ou cabeçalhos). Armazenam informações globais como declaração de tipos, funções e definição de macros 24

EXEMPLO - EXPLICAÇÃO #define FALSE 0 define uma macro, que permite substituir um string por outro valor no corpo do programa antes da compilação se realizar no exemplo acima o pré-processador substitui as ocorrências de FALSE por 0 e TRUE por 1 Ex: if ( resposta == TRUE ) ==> if ( resposta == 1) #define ESPERA for (i=1; i<1000; i++) nome da macro corpo da macro 25

EXEMPLO - EXPLICAÇÃO int i = 0; void mostra_msg( void ); Declarações Globais indica ao compilador que, dentro do arquivo onde aparecem estas declarações: a variável i é inteira, iniciada com o valor zero (0) a função mostra_msg não recebe nenhum parâmetro e não retorna nenhum valor (procedure) Ex: int soma( int x, int y); soma é uma função que recebe dois argumentos inteiros e retorna um valor também inteiro as declarações são utilizadas pelo compilador para verificar se as funções e as variáveis globais são utilizadas corretamente 26

EXEMPLO - EXPLICAÇÃO Exemplo (cont.) float f; int a; int soma (int x, int y);... soma (f, a); ==> erro: parâmetro inválido mostra_msg ( ) não necessita de argumento pois utiliza uma variável global i. É fortemente recomendada a NÃO utilização de variáveis globais 27

EXEMPLO - EXPLICAÇÃO void main( ) { int resposta; printf( Quer ver a mensagem? (0-no, 1-yes)\n" ); scanf( "%d", &resposta ); if ( resposta == TRUE ) mostra_msg( ); else puts( "Goodbye for now." ); } Função Principal todo programa C tem que ter uma função chamada main( ). É aqui que inicia a execução do programa em um programa pequeno, todo o algoritmo pode ser escrito em main() programas estruturados consistem em uma hierarquia de funções dentre as quais main() é aquela de mais alto nível 28

EXEMPLO - EXPLICAÇÃO tipo do resultado retornado pela função Nome da Função Lista de Parâmetros void mostra_msg( void ) { clrscr( ); for( i = 0; i <=10; i++ ) printf( "Teste # %d.\n", i ); } Definição de Funções Corpo Início e fim do corpo Funções são os módulos básicos de um programa C 29

EXEMPLO - EXPLICAÇÃO O comando if if ( resposta == TRUE ) mostra_msg( ); else puts( "Goodbye for now." ); Formato: if (<teste>) else <comando1> <comando2> se <teste> avalia para verdadeiro, <comando1> é executado, senão <comando2> é executado 30

EXEMPLO - EXPLICAÇÃO O comando for: for( i = 0; i <=10; i++ ) printf( "Teste # %d.\n", i ); Formato: for ( <atrib1> ; <teste>; <atrib2> ) <comando> 1. executa atribuição 1 2. avalia teste: se falso, encerra for 3. se verdadeiro: 3.1 executa comando 3.2 executa atribuição 2 3.3 vai para 2 31

EXEMPLO - EXPLICAÇÃO Entrada e Saída elementar: C utiliza o conceito de streams (canais) tanto para realizar E/S como para acessar arquivos Canais pré-definidos: stdin: associado ao teclado para entrada de dados stdout: associado a tela para exibição de dados stderr: mensagens de erro, enviadas a tela por default 32

EXEMPLO - EXPLICAÇÃO int puts(char *s); /* stdio.h */ escreve a string s no monitor (saida padrão) e retorna um inteiro não negativo se a operação teve sucesso, ou a constante EOF caso contrário Ex: #include <stdio.h>... puts( Isto é uma string! ); r e s u l t a d o : I s t o é u m a s t r i n g! 33

EXEMPLO - EXPLICAÇÃO Entrada formatada SCANF(): scanf() lê um string de entrada, converte os dados de acordo com a especificação de formato e armazena-os nas variáveis indicadas Formato: scanf( <formato e texto>, endereço_variáveis); para se armazenar os valores lidos, são passados os endereços das variáveis, de forma que scanf saiba onde colocar os dados 34

EXEMPLO - EXPLICAÇÃO Entrada formatada SCANF(). Exemplo: leitura de um inteiro do teclado: #include <stdio.h> void main() { int i; scanf( %d, &i); } o operador & localiza a variável i para scanf %d indica que o dado a ser lido é um inteiro 35

EXEMPLO - EXPLICAÇÃO Saída formatada PRINTF(): printf() escreve um conjunto de dados na saída, convertendo os dados de acordo com a especificação de formato. Note que, ao contrário de scanf, os valores das variáveis são fornecidos Formato: printf( <formato e texto>, variáveis); 36

EXEMPLO - EXPLICAÇÃO Saída formatada PRINTF(). Ex: int i = 10; float r = 3.1514; char s[] = Blablabla ; /* cadeia de caracteres */ printf( Inteiro: %d, Real: %f, String: %s,i,r,s); produz: Inteiro: 10, Real: 3.151400, String: Blablabla 37

PALAVRAS-CHAVE DE C ANSI (repare, são 32 somente!!!) auto break case char const continue default do double else enum extern float for goto if int long register return short signed sizeof static struct switch typeof union unsigned void volatile while 38

EXERCÍCIOS 1. Escreva um programa em C que calcula o preço total de um produto, tendo como entrada o preço unitário e a quantidade vendida. Algoritmo calculo Inicio. Var real: preco, qtde, total; escreva( entre com o preco do produto: ); leia(preco); escreva( entre com a quantidade vendida: ); leia(qtde); total = preco * qtde; escreva( o preco total do produto e:, total); Fim. 2. Escreva um algoritmo para calcular o consumo médio de um automóvel (medido em km/l), dada a distância total percorrida e o volume de combustível consumido para percorre-la (em litros). 39