Baixe o app para aproveitar ainda mais
Prévia do material em texto
Introdução a Programação - EC Oitavo Experimento Galileo SystemC and OO-Synthesis 18.04.2015 Tobias Oppold 1 Apresentando a equipe Camila Ascendina (can@cin.ufpe.br) Matthaeus Marinho (mbm2@cin.ufpe.br) Gustavo Costa (ghgcs@cin.ufpe.br) Douglas Brito (dba@cin.ufpe.br) João Marquim (jvsmfn@cin.ufpe.br) Nilson de Lima (nlj@cin.ufpe.br) Walber Macêdo – ( wmr @cin.ufpe.br) Site monitoria: https://sites.google.com/site/introprogramacaoec/ http://www.cin.ufpe.br/~if669ecf/ (Monitores e Equipes) Apresentar a equipe, deixar claro os contatos e incentivar as perguntas tanto em sala de aula quanto por email ou telefone (para aqueles alunos mais tímidos que não vencem este medo) SystemC and OO-Synthesis 18.04.2015 Tobias Oppold 2 Regras de Uso do Laboratório Zelar pelo laboratório; Não riscar bancadas; Não cortar bancadas ou cadeiras; Zelar pelos equipamentos; Observar tensão suportada pelo equipamento; Observar corrente máxima suportada; Não quebrar contatos; Utilizar os equipamentos com cuidado e paciência; Zelar pelo Kit Galileo; Observar que kits tem tags indicando a quantidade e tipo dos componentes em cada espaço da caixa; Armazenar e usar os componentes com cuidado e paciência. O laboratório de hardware ficou tão lindo que nada mais justo do que avisar que o laboratório precisa de cuidados para permanecer lindo. O alunos não são mais crianças, mas um aviso sempre cai bem. SystemC and OO-Synthesis 18.04.2015 Tobias Oppold 3 O que vamos aprender hoje??? Funções Estruturas dinâmicas Experimento Software Galileo Executar código Testar Função Trecho de código encapsulado int soma (int a, int b){ int resultado; resultado = a + b; return resultado; } Uma função é como uma ameba, um trecho de código que foi englobado. O programador escreve a bagunça, depois verifica o trecho de código que mais se repete e faz uma função. Mostrar que a função pode ter retorno ou não (void ou nome do tipo). SystemC and OO-Synthesis 18.04.2015 Tobias Oppold 5 Função Dicas de como escrever o nome das funções 1- Pode começar com qualquer letra ou caractere especial; 2- Não pode começar com numero; 3- Caso a função tenha nome composto, a partir da segunda palavra, a primeira letra de cada palavra deve ser maiúscula. Ex: funcaoSomaInteirosTotais () Ponteiros e seus derivados Armazena endereço de variável Por quê ponteiro? Acesso mais rápido a vetores e matrizes; Vetores e matrizes não podem ser utilizadas como parâmetros Acesso a grandes porções de memória (basta adicionar) Permite alocação dinâmica Ponteiros e seus derivados Como usar: int a; int *p = &a; //inicializando o ponteiro *p = 20; //modificando o valor da variável Pode ter vários tipos: int = inteiro int* = array dinamica de inteiros int** = array dinamica de array de inteiros Vale a pena olhar: http://pt.wikibooks.org/wiki/Programar_em_C/Ponteiros http://www.tiexpert.net/programacao/c/ponteiro-para-ponteiro.php Estruturas Dinâmicas Usando um programa End 1 End 2 End 3 ... End 255 Programa soma - vetor Programa soma Programa soma Quando se utiliza um programa, uma parte da memória é reservado para o código do seu programa. (uma parte para as estruturas estáticas e outras para as demais variáveis por exemplo). Mas e quando não se sabe o tamanho ao certo? Imagina que tu tens um programa que salva o nomes dos clientes em um vector, tu saberia o tamanho desse vector??? SystemC and OO-Synthesis 18.04.2015 Tobias Oppold 9 Estruturas dinâmicas Quando não se sabe o tamanho... OBS: Precisa da biblioteca stdlib.h Malloc Calloc Free End 1 End 2 End 3 ... End 255 Reservado Malloc Reservado Malloc Reservado Malloc Reservado Calloc - 0 Reservado Calloc - 0 Reservado Calloc - 0 SystemC and OO-Synthesis 18.04.2015 Tobias Oppold 10 Estruturas dinâmicas Malloc (memory allocation) char *ptr; ptr = (char *) malloc( 1); Calloc int *p; int a; p= (int *) calloc(a, sizeof(int)); Free free(p); Malloc – quantidade de bytes você precisa multiplicar Calloc – recebe um inteiro que indica as posições e outro valor que indica o tipo que deve ser salvo. SystemC and OO-Synthesis 18.04.2015 Tobias Oppold 11 Experimento Estruturas Dinâmicas Experimentos 10kΩ 200Ω 10kΩ 10kΩ SystemC and OO-Synthesis 18.04.2015 Tobias Oppold 12 Experimentos – Estruturas Dinâmicas Experimento 1 Criar uma matriz dinâmica de inteiros que tenha inicialmente 20 colunas e duas linhas. Experimento 2 Criar um ponteiro que armazene dois ponteiros para inteiros. Experimento 3 Na primeira linha da matriz colocar valores correspondentes as portas de saida dos LEDS, na segunda linha colocar valores para as portas de entrada (botoes). Experimentos – Estruturas Dinâmicas Desafio A cada rodada uma sequencia de leds irá piscar, começando com 1 led, depois 2 e assim por diante, e o jogador deve memorizar a sequencia e depois apertar o botão correspondente a cada led que acendeu, respeitando a sequencia. O jogo terá no máximo 19 rodadas. Caso o jogador perca, todos os leds se acenderão por 4 segundos e o jogo reinicia. Caso o jogador vença, os leds piscarão num padrão que se repetirá por 4 vezes e o jogo reinicia. Dúvidas
Compartilhar