introdução à linguagem c

61
1 Material preparado a partir de slides dos profs. Jesús Mena- Chalco e Fabrício Olivetti MCTA028 – Programação Estruturada Prof. Guilherme Mota Q3-2018 Introdução à linguagem C

Upload: others

Post on 23-Nov-2021

8 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Introdução à linguagem C

1

Material preparado a partir de slides dos profs. Jesús Mena-Chalco e Fabrício Olivetti

MCTA028 – Programação Estruturada

Prof. Guilherme Mota

Q3-2018

Introdução à linguagem C

Page 2: Introdução à linguagem C

2

Linguagens de programação

Page 3: Introdução à linguagem C

3

Linguagem de programação

É um conjunto limitado de:Símbolos (comandos, identificadores, caracteres, etc)Regras de sintaxe (descrevem de forma precisa ações)

Page 4: Introdução à linguagem C

4

Tipos de linguagem de programação

Linguagem de máquina

Compreendida pelocomputador. Dependente daarquitetura do computador

Linguagem debaixo nível

Utiliza mnemonicos para arepresentação de açõeselementaresEx. Assembly

Linguagem de alto nível

Utiliza instruções próximas dalinguagem humanaEx. C, Java, Python, PHP

(*) Fonte: http://www.webopedia.com/TERM/A/assembly_language.html

Page 5: Introdução à linguagem C

Linguagens de programação

250 linguagens de programção: 01/02/2015

Page 6: Introdução à linguagem C

Linguagens de programação

(*) Popularidade das LPs http://langpop.com/

Page 7: Introdução à linguagem C

7

Sobre a linguagem de programação

Atualmente existem várias linguagens que são consideradaspara este tipo de disciplina...(Python, C, C++, Java, Haskell, Ruby)

Também vários paradigmas de programação (e.g. procedural,orientado a objetos,) podem ser consideradas...

Todo programador competente deve saber/entender alinguagem C/C++.

Tradicionalmente é utilizada a linguagem C.

Nessa disciplina usaremos C.

Page 8: Introdução à linguagem C

8

A linguagem de programação C

Page 9: Introdução à linguagem C

9

Sobre a linguagem de programação C

Permite escrever programas de alta performance.

C funciona em um nível mais baixo que outras linguagens (dá uma ideia melhor do que realmente está acontecendo).

É preferida no mundo científico:Poucas palavras reservadas.Bom controle da máquina.SO livres (Linux/UNIX) são feitos em C.Base de outras linguagens: C++, Java, C#

Page 10: Introdução à linguagem C

10

Sobre a linguagem de programação C

C é uma linguaguem estruturada, desenvolvida nos Laboratórios BELL(1969-1972), por Dennis Ritchie.

Dialetos:K&R C (1978)ANSI CISO CC99C11 (Dez. 2011)

Kenneth L. Thompson (ling. B) Dennis M. Ritchie (ling. C)

(*) Fonte: http://www.catb.org/~esr/jargon/html/U/Unix.html

Page 11: Introdução à linguagem C

11

The National Medal of Technology andInnovation 1998 Laureates

(*) Fonte: http://www.uspto.gov/about/nmti/recipients/1998.jsp

Kenneth L. Thompson (1943-) Dennis M. Ritchie (1941-2011)

Page 12: Introdução à linguagem C

12

Sobre a linguagem de programação C

Influenciada por:ALGOL 68AssemblyBBCPLCPLFortranPL/I

Influenciou:AWK, BitC, C++, C#, C Shell, D, Euphoria, Go, Java,JavaScript, Limbo, Logic Basic, Objective-C, Perl, PHP,Python, ...

Page 13: Introdução à linguagem C

13

Sobre a linguagem de programação C

Page 14: Introdução à linguagem C

14

C x Java

Não possui suporte a orentação a objetos

Linguagem de nível intermediário:controle mais direto do hardware, porém

também suporta estruturas complexas

Gerenciamento de memória explícito

Maior performance do programa final

Maior dificuldade de manutenção

Page 15: Introdução à linguagem C

15

Page 16: Introdução à linguagem C

16

Com

para

ção

subj

etiv

a

(*) Fonte: https://helloacm.com/a-quick-performance-comparison-on-languages-at-codeforces/

Page 17: Introdução à linguagem C

17

Sobre a linguagem de programação C

Precisa instalar um compilador no seu computador:Usaremos o GNU Compiler Collection (gcc)

No Linux: é padrão.No Mac/OS: terá que instalar as ferramentasXcode/Developer.No MS-Windows:

Cygwin (simulação completa de um ambiente UNIX).

Ming-W (Minimalist GNU for Windows).

Page 18: Introdução à linguagem C

18

Linguagem C

char tem 8 bits (não é 16 bits como em Java)

não existe tipo booleano (usar int ou char):0 falso

≠ 0 verdadeiro

tipos inteiros podem ser signed ou unsigned

não tem tipo string: usa-se vetor de char

Na verdade C99 permite o uso de palavras true/false nosprogramas (mas o compilador os trata como os valores 1 e 0de qualquer forma)

Page 19: Introdução à linguagem C

19

Linguagem C: Tipos de dados

Tipos de dados primários.Tipos de dados derivados.Tipos definidos pelo usuário.

(*) Fonte: http://www.studytonight.com/c/datatype-in-c.php

Page 20: Introdução à linguagem C

20

Linguagem C: Números inteiros

(*) Fonte: http://www.studytonight.com/c/datatype-in-c.php

Page 21: Introdução à linguagem C

21

Linguagem C: Números reais

(*) Fonte: http://www.studytonight.com/c/datatype-in-c.php

Page 22: Introdução à linguagem C

22

Linguagem C: Caracteres

(*) Fonte: http://www.studytonight.com/c/datatype-in-c.php

Page 23: Introdução à linguagem C

23

Linguagem C: void

(*) Fonte: http://www.studytonight.com/c/datatype-in-c.php

Page 24: Introdução à linguagem C

24

Conversão de tipo

int a = 20; long b;

b = (long) a; // converte int em long

→ Valor preservado, só o tipo é alterado

Para fazer a conversão, basta colocar entre parênteses o tipo para oqual deseja converter e, então, colocá-lo antes de umavariável/expressão específica ou depois do operador de atribuição (=)para indicar que o resultado proveniente daquela operação deve serconvertido.

Page 25: Introdução à linguagem C

25

Conversão de tipo

int a;long b = 32;

a = (int) b; // converte long em int

→ Perigoso: se b não “cabe” em int, seu valor será truncado.

Page 26: Introdução à linguagem C

26

Conversão de tipo

int a = 17, int b = 3;

double x = a / b;

→ Nesse caso x contém o valor 5

Page 27: Introdução à linguagem C

27

Conversão de tipo

int a = 17, int b = 3;

double x = (double) a / b;

→ Neste caso x contém o valor 5.66667

Page 28: Introdução à linguagem C

28

Conversão de tipo

double x = 5.93487;int y = (int) x;

→ Neste caso y contém o valor 5

Page 29: Introdução à linguagem C

Forma geral de um programa C

29

diretivas de processamento

tipo main ( lista parâmetros )‏ {

//corpo da função main

}

tipo nome_da_funcao ( lista parâmetros )‏ {

//corpo da função

}

.

.

.

Page 30: Introdução à linguagem C

Primeiro Programa: Hello World

//-----------------------------// Primeiro Programa em C// Autor: xxxx // Data: Setembro de 2018//-----------------------------

#include <stdio.h>

void main()‏{ printf("Hello World! \n"); }

30

Page 31: Introdução à linguagem C

Entrada e saída de dados

void main() { int x; float y; printf ("Digite um valor para x: "); scanf("%d", &x);

printf ("Digite um valor para y: "); scanf("%f", &y); printf ("x * y = %f\n", x*y); }

scanf – captura valores fornecidos via teclado

printf – saída de valores

31

Page 32: Introdução à linguagem C

32

Constantes

Page 33: Introdução à linguagem C

33

Constantes

Page 34: Introdução à linguagem C

34

Operadores

Page 35: Introdução à linguagem C

35

Operadores

Page 36: Introdução à linguagem C

36

Operadores

Page 37: Introdução à linguagem C

37

Linguagem Bloco-Estruturada

Page 38: Introdução à linguagem C

38

Comentários

Page 39: Introdução à linguagem C

39

Condicionais

Page 40: Introdução à linguagem C

40

Condicionais

Page 41: Introdução à linguagem C

41

Condicionais

Page 42: Introdução à linguagem C

42

Condicionais

Page 43: Introdução à linguagem C

43

Condicionais

Page 44: Introdução à linguagem C

44

Estruturas de Repetição

Page 45: Introdução à linguagem C

45

Estruturas de Repetição

Page 46: Introdução à linguagem C

46

Estruturas de Repetição

Page 47: Introdução à linguagem C

47

Estruturas de Repetição

Page 48: Introdução à linguagem C

48

Convenções

Page 49: Introdução à linguagem C

49

Convenções

Page 50: Introdução à linguagem C

50

Convenções

Page 51: Introdução à linguagem C

51

Convenções

Page 52: Introdução à linguagem C

52

Convenções

Page 53: Introdução à linguagem C

Sobre listas de exercíciosURI Online Registro obrigatório

Crie uma conta no URI-Online:https://www.urionlinejudge.com.br

Faça um cadastro no seguinte formulário:https://goo.gl/forms/CY0TedgsbqzotFAf2

Dê uma investigada no site do URI e seacostume com as funcionalidades (é simples!)

Page 54: Introdução à linguagem C

54

URI - Online

URI Online Depois de preencher o formulário você receberá um convitepara se cadastrar na nossa disciplina

Page 55: Introdução à linguagem C

55

Page 56: Introdução à linguagem C

56

Page 57: Introdução à linguagem C

57

Page 58: Introdução à linguagem C

58

Page 59: Introdução à linguagem C

59

Page 60: Introdução à linguagem C

60

Page 61: Introdução à linguagem C

61

Lista 01

Fazer os seguintes exercícios cadastrados naplataforma URI:

1001; 1002, 1006; 1010; 1011; 1015; 1019; 1035;1044; 1047; 1066; 1075; 1113; 1134; 1589