Você está na página 1de 1

ESTRUTURA DE DADOS I

Prof. Dra. Telma Woerle

Ambientes de desenvolvimento: 50%


Execução dos programas: 40%
44,1%
$ python3 programa.py 2020 30%

Developer 20%
21,8%
$ gcc programa.c -o programa.out Survey 10%

$ ./programa.out MOST POPUPAR TECHNOLOGIES 0%


Python C

INÍCIO

PLAY
Em C sempre é necessário
importar bibliotecas com a
declaração #include

•stdio.h
Biblioteca de inputs e outputs,
permite imprimir printf()
printf () no
terminal

•int main(){code}
Função obrigatória que contém
o código principal, retorna
retorna
return 0 caso o programa tenha
sido executado com sucesso
https://www.w3schools.com/python https://www.programiz.com/c-programming
TIPOS DE DADOS
• Linha 2:
a,b=1,1 •char ufg[]
é o mesmo que: Strings são sempre
a=1 tratadas como vetores.
b=1 Aspas 'simples' e "duplas"
às vezes pode ficar confuso!
têm significados diferentes

•float ou double
Experimente declarar:
float metade = 1/2;
•Caracter ;
Obrigatório em toda declaração

•Outros tipos de dados: C é uma linguagem fortemente tipada, todos


list( ), tuple( ), dict( ), set( ), etc. os tipos de dados precisam ser declarados

FLUXO DE CONTROLE, LAÇOS DE REPETIÇÃO & OPERADORES

•Operadores:
True, False, and, or, not
igual: == C não tem operadores
diferente: != lógicos True e False, neste
menor: < caso, será considerado como
maior: > FALSO o valor 0, e qualquer
menor ou igual: <=
valor diferente de zero será
maior ou igual: >=
considerado VERDADEIRO

•break •Operadores:
Interrompe o laço e pula AND: &&
para o próximo comando OR: ||
NOT: !
igual: ==
•aux+=1: diferente: !=
incremento: ++
Operação de incremento, decremento: --
é o mesmo que fazer:
menor: <
aux = aux + 1 maior: >
menor ou igual: <=
maior ou igual: >=

•Linha 4: •Linha 11:


Python tem indentação
obrigatória!
Declaração de print sem
formatação explicitada
•Linha 16: for
Necessita sempre de um contador
cuja variável tem que ser declarada (dentro ou fora do for); condição de parada; incremento ++ (ou decremento --)

FUNÇÕES
FUNÇÕES & ENTRADA DE DADOS NO TERMINAL

DANGER
DANGER As funções, em geral, ficam
PYTHON NAMESPACES organizadas fora da função
Cuidado ao utilizar nomes reservados principal main(), declarada
do Python como nome de variável, é como int, retornando o
EXTREMAMENTE desaconselhável inteiro 0

•Linha 2: void
•input(): Toda função precisa ser declarada o seu
Recebe o input de entrada tipo de dados. Se a função não retornar
do terminal nenhum valor, a declaração é do tipo:
void
•Linha 3: switch()
switch é outro tipo de fluxo de controle,
observe a necessidade do break em cada
caso de validação, exceto o último. Não
existe switch( ) em Python

•Linha 16: scanf()


scanf( ) - scan formatted
Função principal de leitura do C, o seu
•import sys uso é para casos simples ou de entradas
Biblioteca para receber entradas como argumentos direto da linha de comando formatadas. Existem outras formas de
leituras mais gerais, como por exemplo
a função fgets( )
>>> python3 <programa.py> arg1 arg2 ...

ARRAYS & IMPORTAÇÃO DE BIBLIOTECAS / ARQUIVOS EXTERNOS

As bibliotecas são importadas com o comando #include. Os arquivos terminados com a


extensão .h são ditos "arquivos de cabeçalho". Todo programa .c externo que precisa ser
As bibliotecas são importadas como o comando import. importado, necessita da criação de um arquivo de cabeçalho .h. No arquivo de cabeçalho
Outras formas são: pode constar declarações #define para importar variáveis constantes ao programa principal
import <package>
import <package> as <apelido/alias> •Linha 2: #include "UFG.h"
from <package> import <subpackage/classe> as <apelido/alias> Importação do arquivo UFG.c (programa principal)
por meio do arquivo de cabeçalho UFG.h

•Linha 2: import UFG UFG.c (arquivo externo)


Importa o arquivo externo UFG.py

•Linhas 4-5:
Forma de acesso à variável name e à função
saudacao( ) definidas no arquivo UFG.py.

•Linha 7: UFG.h (arquivo cabeçalho)


Forma de declarar uma matriz utilizando o
tipo de dados nativo list( ). Em geral, não é
uma boa escolha trabalhar com matrizes
utilizando listas. Para arrays a melhor opção
é utilizar a biblioteca numpy (linha 19)

•Linhas 11-13: É comum no arquivo de cabeçalho fazer


Modo de acesso aos elementos da matriz todas as devidas declarações de funções
do programa importado que serão
utilizadas no programa principal
•Linhas 18 e 23:
Note que matrizes declaradas como list( )
e objeto numpy têm comportamentos • Linhas 4-6: #define CONSTANTE
totalmente diferentes Permite definir variáveis constantes que serão
utilizadas no programa

• Linha 10: array do tipo char


UFG.py (arquivo externo) Forma de declarar a dimensão do array e o tamanho Em um programa extenso, haverá
máximo da string para cada posição. Isto tem a ver inúmeros arquivos externos. Neste
com alocação de memória e ponteiros
caso, o Makefile é a maneira mais
eficiente de compilar o programa
Como boa prática de programação, •Compilação
evite misturar nomes em diferentes É preciso passar para a compilação todos os arquivos externos utilizados:
idiomas o máximo que puder, tente
manter um padrão >>> gcc 05-arrays.c UFG.c -o saida.out && ./saida.out

LEITURA DE ARQUIVOS EXTERNOS & PONTEIROS

Python não tem ponteiros! enjoy JEDI LEVEL


A arte de dominar C é dominar a
manipulação de ponteiros,
representados com *. Isto leva
horas de treino e prática!

• Linha 2 - stdlib.h:
Biblioteca que implementa a função
fscanf( ) para a leitura de arquivos
externos

•Linha 8 - malloc:
Alocação de memória, em C é preciso
trabalhar com endereços de memória
a maior parte do tempo via ponteiros

matriz.dat matriz.dat

•Linha 12 - &data[i]: •Linha 17 - "%.3lf":


Sintaxe de ponteiros, & permite acessar Formatação para double (linhas 7-8),
o endereço na memória da variável significando long float.

Você também pode gostar