Introdução à linguagem C -...

Preview:

Citation preview

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

2

Linguagens de programação

3

Linguagem de programação

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

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

Linguagens de programação

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

Linguagens de programação

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

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.

8

A linguagem de programação 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#

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

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)

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, ...

13

Sobre a linguagem de programação 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

15

16

Com

para

ção

subj

etiv

a

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

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).

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)

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

20

Linguagem C: Números inteiros

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

21

Linguagem C: Números reais

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

22

Linguagem C: Caracteres

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

23

Linguagem C: void

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

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.

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.

26

Conversão de tipo

int a = 17, int b = 3;

double x = a / b;

→ Nesse caso x contém o valor 5

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

28

Conversão de tipo

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

→ Neste caso y contém o valor 5

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

}

.

.

.

Primeiro Programa: Hello World

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

#include <stdio.h>

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

30

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

32

Constantes

33

Constantes

34

Operadores

35

Operadores

36

Operadores

37

Linguagem Bloco-Estruturada

38

Comentários

39

Condicionais

40

Condicionais

41

Condicionais

42

Condicionais

43

Condicionais

44

Estruturas de Repetição

45

Estruturas de Repetição

46

Estruturas de Repetição

47

Estruturas de Repetição

48

Convenções

49

Convenções

50

Convenções

51

Convenções

52

Convenções

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!)

54

URI - Online

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

55

56

57

58

59

60

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

Recommended