Linguagem C Introdução. Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Documentos relacionados
Linguagem C Ficheiros Compilação Separada

Introdução à Linguagem C. K&R: Capitulo 1. Introdução IAED, 2014/2015 2

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

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

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

Introdução à Linguagem C

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

Programação. Folha Prática 1. Lab. 1. Departamento de Informática Universidade da Beira Interior Portugal Copyright Ó 2000 All rights reserved.

Programação em Sistemas Computacionais

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

Linguagem C. Brian W. Kernighan, Dennis Ritchie (K&R) Slides adaptados, inspirados, muitos copiados dos slides do professor Pedro Pereira

PROGRAMAÇÃO INSTRUÇÕES DA LINGUAGEM C

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

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

Instituto Superior de Engenharia de Lisboa

Programação. MEAer e LEE. Manipulação de ficheiros de texto. Bertinho Andrade da Costa. Instituto Superior Técnico. 2010/2011 1º Semestre

Programação Estruturada em C++: Extensões ao C

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

Ana Paula Tomás. Departamento de Ciência de Computadores Faculdade de Ciências da Universidade do Porto 2010/2011

Apresentação da ferramenta de programação. Comandos de entrada e saída. Prof. Alex Camargo

Curso de Introdução à Liguagem de. Grupo PET-Tele. Universidade Federal Fluminense. July 16, 2012

Funções de Entrada e Saída

Introdução a linguagem C. Introdução à Programação 06/07

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

3. Linguagem de Programação C

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

Introdução à Programação C

Conceitos Básicos da Linguagem C++ Prof. Leonardo Barreto Campos 1

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

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

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

Mestrado em Engenharia Física Tecnológica

Programação. MEAer e LEE. Bertinho Andrade da Costa. Instituto Superior Técnico. Argumentos da linha de comando Funções recursivas

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

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

Disciplina de Algoritmos e Programação

Linguagem de Programação C

Convertendo Algoritmos para a Linguagem C

Carlos Eduardo Batista. Centro de Informática - UFPB

Licenciatura em Eng.ª Informática Sistemas Operativos - 2º Ano - 1º Semestre. Trabalho Nº 1 - Linux e C

Introdução à Linguagem C

Computação L2. Linguagem C++ Observação: Material Baseado na Disciplina Computação Eletrônica.

Licenciatura em Informática

Métodos Computacionais

Estrutura de Programas e Tipos de Dados Simples

Laboratório de Programação. Prof. Oscar Luiz Monteiro de Farias

5 Apresentando a linguagem C

Linguagem C (continuação)

Linguagem C: Introdução

11 - Estrutura de um programa em C

Matrizes em C. Lucas Ferrari de Oliveira Professor Adjunto. Universidade Federal do Paraná

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 29 de agosto de 2008

Controlo de Execução. K&R: Capitulo 3

Disciplina de Algoritmos e Programação

INTRODUÇÃO A LINGUAGEM C

Sumário. Introdução à Ciência da Computação. Ponteiros em C. Introdução. Definição. Por quê ponteiros são importantes?

Conceitos Básicos de C

Introdução a Programação na Linguagem C.

Introdução a Programação de Jogos

Slides trabalhados durante a quinta aula

Material sobre Funções AEDS 1

Strings. Introdução. Definição de strings. Criação/Declaração de strings. Inicialização de strings. Manipulação de strings. Exemplos.

Universidade Federal do Espírito Santo. Programação I Tipos de Dados Básicos - C Professora: Norminda Luiza

Introdução à Programação em C (II)

Introdução à Programação em C

Algoritmos RESUMO - LINGUAGEM C

Computação e Programação

ponteiros INF Programação I Prof. Roberto Azevedo

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

INTRODUÇÃO À LINGUAGEM PASCAL PREFÁCIO

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Linguagens de Programação I

A Linguagem C. A forma de um programa em C

Estruturas. K&R: Capitulo 6. Estruturas IAED, 2014/2015. Introdução às Estruturas Estruturas e Funções Vectores de Estruturas Typedef Exemplo

Ambiente de desenvolvimento

Programando em C++ Histórico da Linguagem C

Introdução à Programação em C. Prof. Ricardo Teixeira Tecnologia em Mecatrônica Industrial SENAI

Estruturas de Dados Aula 2: Estruturas Estáticas 02/03/2011

Programação: Vetores

Introdução e Conceitos

Computação para Informática - Prof. Adriano Joaquim de Oliveira Cruz Segunda Aula Prática - 3 de setembro de 2010

Resumo da Introdução de Prática de Programação com C. A Linguagem C

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

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

Introdução à Linguagem C Variáveis e Expressões

Aula 01. Prof. Diemesleno Souza Carvalho /

Referências. Linguagem C. Tipos de variáveis em XC8. Tipos de variáveis. Tipos de variáveis em XC 8 Exemplo. Radicais numéricos em C

INF1007: Programação 2. 0 Revisão. 06/08/2015 (c) Dept. de Informática - PUC-Rio 1

Dicas PET-Tele. Apostila Básica de Funções em C

Introdução à Programação em C (I)

4. Estruturas Fundamentais de Programação em C

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

Programação Estruturada Prof. Rodrigo Hausen Organização e Gerenciamento de Memória

Desenvolvimento de Bibliotecas

Modulo 2 Leitura, Escrita e IF

Estrutura básica de um programa Instruções do Programa Sintaxe das instruções Diretivas apenas o contexto Variáveis e Constantes Tipos e modificadores

PROGRAMAÇÃO FUNÇÕES NA LINGUAGEM C

Capítulo 2 Operadores. A função scanf()

Programas simples em C

Transcrição:

Linguagem C Introdução Contexto Histórico Principais diferenças do Java Funções em C Compilar programas em C no Linux

Porquê C em AC? A linguagem C fornece um modelo de programação próximo da máquina física Que vamos estudar nesta cadeira Não requer uma máquina virtual Permite a manipulação directa de endereços de memória (apontadores) Considerada por alguns autores como um assembler portável É relativamente fácil ligar programas em C com módulos em assembler 2

Linguagem C - origem Desenvolvida por Dennis Ritchie nos anos 70 Chamada C por derivar de uma linguagem anterior chamada B (que derivava do BCPL) Objectivo desenvolver sistemas de operação e compiladores Hoje também muito usada para implementar máquinas virtuais de outras linguagens No entanto é uma linguagem de uso geral Primeiro êxito reescrita do sistema UNIX em C a partir da versão original em assembler 3

Linguagem C - evolução 1978 Kernighan & Ritchie publicam a primeira edição de The C Programming Language efectivamente definindo a linguagem 1983 ANSI C é definido um standard internacional para a linguagem C. Mais tarde é publicada a segunda edição do livro, cobrindo este standard 1999 C99 O standard é refinado, incluindo algumas inovações que foram introduzidas pelo C++ 4

C++ Linguagem C sucessores famosos Entre 1979 e 1983 Bjarne Stroustrup desenvolve uma extensão à linguagem C Orientada aos objectos - classes Inclui excepções tratamento de erros sofisticado Sistema de tipos mais forte que o do C Java Em 1996 a Sun lança a primeira implementação da linguagem Java Inovações principais do Java em relação ao C++: Gestão de memória automática Máquina virtual standard a JVM 5

Principais diferenças entre C e Java C não tem classes É baseado em funções C não tem excepções Tratamento de erros a cargo do programador C permite manipular directamente endereços de memória (apontadores) C não tem gestão de memória automática O sistema de tipos do C é fraco O compilador de C é muito mais permissivo que o de Java 6

Primeiro programa em C // usar a biblioteca de I/O #include <stdio.h> // função principal int main() { /* escrever a mensagem no écran } e mudar de linha */ printf( hello world\n ); // retornar 0 ao sistema operativo return 0; 7

C e Java Classes vs funções Em Java um programa é um conjunto de classes Em C um programa é um conjunto de funções Uma função em C corresponde, grosso modo, a um método em Java! Exemplo de uma função em C: int quadrado( int x ) { return x*x; } 8

C e Java tipos de dados básicos Essencialmente os mesmos, no entanto: Em C não existe boolean temos que usar inteiros: 0 significa falso; qualquer outro valor significa verdade char em C corresponde a byte em Java Os caracteres correspondem aos seus códigos ASCII Por exemplo: 0 = 48, A = 65, \n = 10 Logo podemos misturar livremente caracteres e inteiros em expressões e atribuir inteiros a caracteres e vice-versa Cuidado! String não é um tipo básico em Java mas sim uma classe (e não existe em C...) 9

C e Java Estruturas de controle Selecção: if, switch o mesmo em C que em Java Ciclos: for, while - o mesmo em C que em Java No entanto o gcc tem uma limitação no for: for( int i = 0;... ) Tem de ser escrito como: int i; for( i = 0;... ) Excepções throw, catch não existem em C 10

Função main É a função principal de um programa Todos os programas têm que ter uma função main Para todos os efeitos é uma função como qualquer outra, que é chamada quando o programa começa Retorna um inteiro ao sistema operativo (convenciona-se que 0 indica sucesso e outro valor será um código de erro) 11

Protótipos das funções Em C uma função pode ter um protótipo que indica ao compilador como ela deve ser chamada Corresponde à assinatura do método em Java Tem de corresponder exactamente à declaracão da função O protótipo é importante quando a função é chamada antes de ser definida //protótipo da função main (sem argumentos) int main(void); // protótipo da função quadrado int quadrado(int); 12

C - I/O printf e scanf As funções de I/O do C não fazem parte da linguagem mas da biblioteca standard! São funções como todas as outras! Os seus protótipos estão declarados no ficheiro do sistema stdio.h #include <stdio.h> printf( formatação, a1, a2... ); scanf( formatação, a1, a2...) ; 13

C I/O printf e scanf Caracteres de formatação: %c caracter %d inteiro %s string (vector de caracteres) %f float Exemplos: char nome[100]; int n, idade; %x inteiro hexadecimal %lf - double printf( nome %s\nidade %d\n, nome, idade ); printf( decimal %d = hex %x\n, n, n ); scanf( %d, &idade ); 14

Segundo programa em C #include <stdio.h> int quadrado( int x ) { return x*x; } int main() { int n; // variável local } printf( Introduza n: ); scanf( %d,&n); printf( quadrado de %d é %d\n, return 0; n, quadrado(n) ); 15

Sistema de janelas Como no windows Gestor de ficheiros Como no windows Vamos usar: Linux Editor de texto (por exemplo: gedit) Terminal (também designado por consola, shell, linha de comandos, etc) 16

Linha de comandos Terminal Linux cd mudar de pasta (directoria) pwd mostrar a pasta corrente ls listar o conteúdo de uma pasta mkdir criar pasta cp copiar ficheiros rm apagar ficheiros exit sair man - manual por exemplo: man cp 17

C - compilar Linha de comandos: gcc Wall g o prog prog.c gcc: compilador -Wall: dar todos os avisos (importante!) -g: preparar para o debugger -o prog: especifica o nome do executável prog.c: programa fonte em C Depois é preciso correr o programa!./prog Manual (linha de comandos): man gcc man 3 printf (ou outra função da biblioteca) 18