• Nenhum resultado encontrado

Introdução à linguagem C

N/A
N/A
Protected

Academic year: 2021

Share "Introdução à linguagem C"

Copied!
61
0
0

Texto

(1)

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

(2)

2

(3)

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)

4

Tipos de linguagem de programação

Linguagem de

máquina Compreendida pelocomputador. Dependente da arquitetura do computador

Linguagem de baixo nível

Utiliza mnemonicos para a representação de ações elementares

Ex. Assembly

Linguagem de

alto nível Utiliza instruções próximas dalinguagem humana Ex. C, Java, Python, PHP

(5)

Linguagens de programação

(6)

Linguagens de programação

(7)

7

Sobre a linguagem de programação

Atualmente existem várias linguagens que são consideradas para 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 a linguagem C/C++.

Tradicionalmente é utilizada a linguagem C.

(8)

8

(9)

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)

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 C ISO C C99 C11 (Dez. 2011)

Kenneth L. Thompson (ling. B)

Dennis M. Ritchie (ling. C)

(11)

11

The National Medal of Technology and

Innovation 1998 Laureates

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

(12)

12

Sobre a linguagem de programação C

Influenciada por: ALGOL 68 Assembly B BCPL CPL Fortran PL/I Influenciou:

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

(13)

13

(14)

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

(15)
(16)

16 C om pa ra çã o su bj et iv a (*) Fonte: https://helloacm.com/a-quick-performance-comparison-on-languages-at-codeforces/

(17)

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 ferramentas

Xcode/Developer.

No MS-Windows:

Cygwin (simulação completa de um ambiente UNIX). Ming-W (Minimalist GNU for Windows).

(18)

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 nos programas (mas o compilador os trata como os valores 1 e 0 de qualquer forma)

(19)

19

Linguagem C: Tipos de dados

Tipos de dados primários.

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

(20)

20

Linguagem C: Números inteiros

(21)

21

Linguagem C: Números reais

(22)

22

Linguagem C: Caracteres

(23)

23

Linguagem C: void

(24)

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 o qual deseja converter e, então, colocá-lo antes de uma

variável/expressão específica ou depois do operador de atribuição (=) para indicar que o resultado proveniente daquela operação deve ser convertido.

(25)

25

Conversão de tipo

int a;

long b = 32;

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

(26)

26

Conversão de tipo

int a = 17, int b = 3;

double x = a / b;

(27)

27

Conversão de tipo

int a = 17, int b = 3;

double x = (double) a / b;

(28)

28

Conversão de tipo

double x = 5.93487;

int y = (int) x;

(29)

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

}

.

.

.

(30)

Primeiro Programa: Hello World

//---// Primeiro Programa em C // Autor: xxxx // Data: Setembro de 2018 //---#include <stdio.h> void main()‏ { printf("Hello World! \n"); } 30

(31)

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

(32)

32

(33)

33

(34)

34

(35)

35

(36)

36

(37)

37

(38)

38

(39)

39

(40)

40

(41)

41

(42)

42

(43)

43

(44)

44

(45)

45

(46)

46

(47)

47

(48)

48

(49)

49

(50)

50

(51)

51

(52)

52

(53)

Sobre listas de exercícios

URI 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 se

(54)

54

URI - Online

URI Online

Depois de preencher o formulário você receberá um convite para se cadastrar na nossa disciplina

(55)
(56)
(57)
(58)
(59)
(60)
(61)

61

Lista 01

Fazer os seguintes exercícios cadastrados na plataforma URI:

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

Referências

Documentos relacionados

Outro aspecto importante é o de como as variáveis de tipo ponteiro são aplicáveis para a passagem de vetores como parâmetros para funções. Ao se passar um ponteiro

Outras funções podem ter acesso a variáveis locais de uma determinada função quando recebem como argumento o valor ou o endereço destas variáveis (com o endereço, é

Em relação ao while, este é constituído somente por um argumento, que corresponde à condição imposta, ou seja, enquanto a condição for verdadeira, o que está dentro do while

• No exemplo do slide anterior, se quisermos transformar o código que traduz segundos para horas, minutos e segundos precisamos de uma função que retorna três valores. •

A rígida distinção dos papéis sociais designados para homens e mulheres na sociedade sustentava uma concepção de família que tinha como centro o casal, sendo este definido

O identificador é uma sequência de letras, dígitos e caractere para sublinhamento escolhida pelo programador e (como foi dito acima) será utilizado no programa para se

rência de extravasamento. Se você acha que futuramente esse programa será compilado sob um compilador diferente, que talvez represente as variáveis do tipo

Essa diretiva tem como facilidade a função de simplificar a digitação. Ao invés de digitar várias vezes comandos complexos e extensos que são utilizados diversas vezes ao longo de