Linguagem C Para programadores Python PMR3100-2017
Agenda 1.Principais Diferenças 2.Tipos de dados 3.Estruturas de controle 4.Funções 5.Organização do programa
1.Principais diferenças 1.Modo de execução 2.Tipagem 3.Demarcação de blocos 4.Funções 1.Principais diferenças
Python roda em um interpretador Modo de Execução Python roda em um interpretador C roda em linguagem de máquina Interpretador Fonte Fonte Compilador Executável
Demarcação de blocos Python usa “:” e tab C usa { e } if x == 0: print “zero” C usa { e } if (x == 0) { printf (“%s”, “zero”); } Notar a expressão lógica entre parênteses
Python não usa tipagem forte i = “oi” C usa tipagem forte int i; i = 1; i = “oi”; (e termina cada comando com “;”)
Funções def fat(n): if n==0: return 1 else: return n * fat(n-1) Python usa DEF para funções def fat(n): if n==0: return 1 else: return n * fat(n-1) x = fat(2) C usa uma declaração de tipo para funções int fat(int n) { if (n == 0) { return 1; } else { return n * fat(n -1); } x = fat(2);
2.Tipos de dados 1.Tipos de dados básicos 2.Constantes ou literais 3.Caracteres e strings 4.Vetores 2.Tipos de dados
Tipos de dados básicos Atenção: em muitos sistemas, como no Arduino, o inteiro “int” tem 2 bytes Ou seja, pode armazenar -32768 a +32767
Constantes ou literais #DEFINE permite definir constantes ou literais, tornando o programa mais legível #define saida 1 if (saida == 0) { .... }
C diferencia caracteres e strings char x; x = ‘a’; //aspas simples char *hello; hello = “oi mundo”;
Em python, existem “lists”, que podem conter quaisquer dados. Vetores Em python, existem “lists”, que podem conter quaisquer dados. Em C, existem arrays (vetores), que podem ser declarados como int valores[3]; E usados como: valores[0] = 1; x = valores[2]; Notar que: Índice inicia em zero
Estruturas de controle 1.IF 2.for 3.while Estruturas de controle
IF/ELSE Estrutura if (expressao) { } else { } Exemplo if (x == 0) { x = x+ 1; } else if (x == 1) { x = x + 2; Quando o bloco tem uma única linha, pode-se omitir o {}
FOR Em Python, FOR pode ser usado com range, com lists. for i in range (0,10): print i Em C, somente pode ser usado com inteiros. Estrutura for (inicio; fim; passo) { } Exemplo int i; for (i=0; i<10; i++) { printf(“%d”, i);
Similar ao while do PYTHON Estrutura while (expressao) { } Exemplo int i; while (i<10) { i = i + 1;
1.Declaração 2.uso Funções
Declaração Em C, funções são escritas como declarações de tipos de dados. Os parâmetros usados para a definição da função não se confundem com os usados externamente, ou seja, os nomes podem ser repetidos. Funções que não retornam nenhum valor são do tipo VOID int fat(int n) { if (n==0) return 1; else return n*fat(n-1); }
USO Na chamada da função, os parâmetros formais (usados para a declaração) são substituídos pelos parâmetros de chamada int n; int x; int y; n=2; x=3; y=fat(2); y=fat(n); y=fat(x);
1.Main 2.bibliotecas 3.Ordem de declaração Estrutura do programa
Main Todo programa em C inicia-se pela execução da função MAIN. Pode ser declarada como:
Bibliotecas Bibliotecas que serão utilizadas são declaradas com: #include Notar que estas bibliotecas são LINKADAS (LINK) com o seu código para gerar o executável. Compilador Fonte Linker Executável libs
Ordem de declaração Em C, tudo deve ser declarado antes de ser usado. Isso inclui declarar variáveis, constantes, funções, etc.
Juntando tudo... #include “stdio.h” int fat (int n) { if (n == 0) return 1; else return n * fat(n-1); } void main () { char *h; int resultados[3]; int i, j; j = 0; for (I = 4; I < 7; i++) { resultados[j++] = fat(i); printf(“%d %d %d”, resultados[0], resultados[1], resultados[2]);
Sua vez!!