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
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 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
Linguagens de programação
Linguagens de programação
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
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 C ISO C C99 C11 (Dez. 2011)
Kenneth L. Thompson (ling. B)
Dennis M. Ritchie (ling. C)
11
The National Medal of Technology and
Innovation 1998 Laureates
(*) Fonte: http://www.uspto.gov/about/nmti/recipients/1998.jsp
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
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
16 C om pa ra çã o su bj et iv 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 ferramentas
Xcode/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 nos programas (mas o compilador os trata como os valores 1 e 0 de qualquer forma)
19
Linguagem C: Tipos de dados
Tipos de dados primários.
Tipos de dados derivados. Tipos definidos pelo usuário.
20
Linguagem C: Números inteiros
21
Linguagem C: Números reais
22
Linguagem C: Caracteres
23
Linguagem C: void
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
Conversão de tipo
int a;
long b = 32;
a = (int) b; // converte long em int
26
Conversão de tipo
int a = 17, int b = 3;
double x = a / b;
27
Conversão de tipo
int a = 17, int b = 3;
double x = (double) a / b;
28
Conversão de tipo
double x = 5.93487;
int y = (int) x;
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"); } 30Entrada 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
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
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
URI - Online
URI Online
Depois de preencher o formulário você receberá um convite para se cadastrar na nossa disciplina
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