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
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
Top Related