Busca

Road trippin' w ma 2 fav allies

Tag

tutorial

C++ simple details

Para utilizar o “cout”:

#include <iostream>// one of two
using namespace std; // two of two, yay!
int main(void){

cout << "A";

return 0;

}


Para utlilizar o “malloc”:
#include <cstdlib>

Para criar uma array 3D com 1’s:
int n = 5; // Tamanho da matriz
int *** matrix = (int***) malloc(n*sizeof(int**));
for (int i=0; i < n; i++){

matrix[i] = (int**)malloc(n*sizeof(int*));

for (int j=0; j < n; j++){

matrix[i][j] = (int*) malloc(n*sizeof(int));

for (int k=0; k < n; k++){

matrix[i][j][k] = 1;

}

}

}


Em java é bem mais fácil né… =P
Essa p%$# de C++ tem que ser bem mais rápida pra compensar..
(kkkkkkkkkkkkk)

Anúncios

Um pouco de Shell Script

Nessa sexta resolvi aprender um pouco de Shell script para automatizar algumas atividades do laboratório…

Achei que seria um pouco difícil e boring de aprender, mas por incrível que pareça, nenhum dos 2, completamente fácil e na verdade interessante. O shell script abre um mundo de novas possibilidades. É uma linguagem interpretada pelo bash (normalmente chamada de shell, o terminal do linux), e como as maiorias das linguagens de script/programação, possui as principais características básicas necessárias à programação: declaração de variáveis, funções, parametrização, e é claro, estruturas conficionais (if-else, case) e iterativas (for, while).

O script sh que eu fiz tem o objetivo de receber 2 vídeos como argumento, gerar a quantidade de cópias dele fornecida pelo nº de processos (também um argumento), e executar um programa C++ que recebe os vídeos como argumento e realiza um processamento dos mesmos medindo seu desempenho. O grande motivo de eu ter gerado esse sh, é pq eu quero facilitar e tornar mais rápido os testes de desempenho dos mesmos, podendo variar facilmente os vídeos, e a quantidade de processos paralelos.

Abaixo, o código na forma de imagem (mais compreensível).

Shell script
Código do Shell Script

Explicando os pontos principais:

  • #!/bin/bash
A primeira linha obrigatoriamente começa com um “#!” (que não é comentário por causa do “!”), informando qual interpretador ele deverá usar, juntamente com seu caminho. Existem outros interpretadores, porém esse é o mais utilizado. A lista de interpretadores instalados no sistema pode ser identi ficada através do comando “cat /etc/shells”.
  • NUMPROCESSOS=$1
Declaração de variável recebendo primeiro argumento do sh. Nome da variável deve ser “colada” ao = e seu respectivo valor. $0 == nome do script, $1 == primeiro argumento, $2 == segundo argumento, …, $# == nº de argumentos.
  • if [ -f “$VIDEOPRINCIPAL” ] && [ -f “$VIDEOSECUNDARIO” ] #verifica existencia dos arquivos de video
O “if” deve possuir um teste que vem entre colchetes []. O “-f” verifica existência de um arquivo. O $VIDEOPRINCIPAL me dá o valor da variável. E o # indica comentário.
  • echo ‘Arquivos encontrados’;
O “echo” imprime na console.
  • for NUM in $(seq 1 $NUMPROCESSOS) #recopio os vídeos N vezes
Realizo um “for” com uma sequencia de  1 até o valor de NUMPROCESSOS, fornecido pelo argumento.
  • cp $VIDEOPRINCIPAL ${VIDEOPRINCIPAL%%.ts}-${NUM}.ts
O “cp” é um comando do próprio linux, que me permite copiar o arquivo. Em ${VIDEOPRINCIPAL%%.ts}-${NUM}.ts através de um regex eu retiro o .ts da string, e adiciono o número da iteração ao fim (Ex.: video-3.ts).
  • dist/Debug/GNU-Linux-x86/./gtaaas \”${VIDEOPRINCIPAL%%.ts}-${NUM}.ts\” \”${VIDEOSECUNDARIO%%.ts}-${NUM}.ts\” \”4\” &
Está dentro do outro “for”, e serve para executar o programa C++ (com o &, já que vou executar vários paralelamente) com os vídeos recém-criados sendo passados como argumentos.

Tá aqui os 3 tutoriais que usei, bem simples, para iniciantes mesmo.

Desenvolvimento de um simulador 3D para a cadeira de Arquitetura

Hoje foi apresentado (Erick) nosso trabalho sobre o simulador 3D para o ensino da arquitetura de processadores…

Decidi escrever um pouco porque achei a experiência bastante interessante.
O prof. Hamilton achou de fato um meio com que nós aprendêssemos de forma eficaz o que ele estava ensinando. Nos pediu para que fizéssemos uma aplicação gráfica para a simulação do funcionamento do processador. E isto realmente nos forçou a aprender o funcionamento dos processadores, sendo que de maneira mais prazerosa (pelo menos pra mim).

Primeiro foi preciso escolher que tecnologias utilizar, levando em conta facilidade de desenvolvimento e poder da linguagem. Daí sugeri utilizarmos o X3D, pois tem uma fácil integração com java que nos permite adicionar interatividade a cenários 3D. Então, fiquei encarregado de dar uma mini-aula, mostrando como se construía modelos 3D com a linguagem, e como se adicionava interação com a mesma. (Slide da apresentação abaixo.)

Desse ponto, dividi a modelagem dos registradores & cia entre alguns colegas, e fiquei encarregado de montar a animação de uma instrução para que servisse de modelo para os outros poderem fazer outras instruções. Neste meio tempo, alguns erros foram cometidos quanto ao funcionamento da animação, acredito que fizemos uma 2 animações erradas. Inicialmente achávamos que sabíamos o que era o pipeline do processador, mas só depois que mostramos uma animação ao professor, ele nos apontou onde estávamos errando.

Enfim, conseguimos gerar uma versão desktop (figuras abaixo), feita em java com algumas instruções prontas, sem e com pipeline. Nosso próximo passo, é fazer uma integração na Web da aplicação, via applets. E por último, fazer um upgrade para que o usuário possa escolher uma lista de intruções a ser processadas.

Este slideshow necessita de JavaScript.

Blog no WordPress.com.

Acima ↑