Revista PROGRAMAR nº 51 — Dezembro de 2015

A Revista PROGRAMAR está de volta com mais uma edição. Desta vez temos como tema de capa o artigo Travessia de uma árvore de diretórios usando recursividade, da autoria de Patricio Domingues, Vítor Carreira e Carlos Grilo. Adicionalmente, nesta edição poderá encontrar mais 19 artigos, que listamos de seguida:

Clique aqui para fazer o download desta edição!

Continuaremos também a premiar os autores dos três melhores artigos, dado o sucesso nas edições anteriores. E os leitores devem dar a sua opinião para que possamos premiar correctamente. Para isso vote em http://bit.do/ProgramarED51_V.

Christmas_tree.cpp

#include “stdafx.h”
#include<stdio.h>
 void main()
  { int rows,starNo,spaceNo;  //Perguntar e definir metas próprias
      printf(“Enter Rows:\n”); scanf(“%d”,&rows);
               // Definir o algoritmo
      for(int i=1;i<=rows;i++) {starNo=i*2-1; spaceNo=i+rows-starNo;
       for(int j=0;j<spaceNo;j++) {printf(“%c”,’ ‘);}
       for(int k=0;k<starNo;k++)  {printf(“%c”,’*’);}
      printf(“\n”); }
    //Continuar a apostar no algoritmo
     for(int l=0;l<3;l++){ for(int m=0;m<(rows*2+1)/2;m++) {printf(“%c”,’ ‘);} 
       printf(“%c\n”,’*’); } printf(“\n “);
 /*

Continuar a ler

Travessia de uma árvore de diretórios usando recursividade

Introdução

O diretório é um elemento familiar nos sistemas de ficheiros, sendo empregue para organizar o armazenamento de dados em suporte persistente como, por exemplo, discos rígidos. Uma operação relativamente comum num sistema de ficheiros é a travessia da árvore de diretórios, através da qual são visitados todos os subdiretórios e ficheiros. Este artigo foca o uso de recursividade e das funções stat e readdir para a travessia de uma árvore de diretório recorrendo à metodologia denominada de busca em profundidade (depth-first search na designação anglo-saxónica) (Knuth, 1968) (Wikipedia, 2015). Embora o artigo assente no ambiente Linux e na linguagem C, a metodologia utilizada pode ser empregue, com algumas adaptações, noutras plataformas e com outras linguagens de programação.

Continuar a ler

Validação de formulários em JavaScript

Atualmente, a validação de formulários em JavaScript é muito utilizada para garantir que os dados solicitados nos campos que o utilizador preenche em qualquer site sejam fiéis ao que o programador deseja. A validação de dados por meio de programação JavaScript é feita no browser (sem necessidade de ir até o servidor para transmitir dados) e garante a consistência dos dados quando são enviados para a base de dados.

A validação no cliente é necessária em várias situações: quando, por exemplo, o utilizador não preencheu corretamente o seu e-mail e colocou 2 invés de @. Se esta validação for no cliente, o utilizador recebe a mensagem de e-mail inválido antes do formulário ser enviado. A validação no cliente melhora a interação do utilizador com o site, mas é claro, que as validações no servidor também devem ser feitas.

Continuar a ler

Aplicações Mobile com o Xamarin Studio

Introdução

Uma das linguagens de programação que tem tido um aumento susceptível a nível de popularidade, é o C#. Cada vez mais, esta tem sido a escolha feita pelos programadores para por as suas ideias em prática, nos mais variados tipos de software. Chegou a altura de esta ter uma palavra a dizer no que toca a aplicações Android e IOS, visto que só era aplicada para apps Windows Phone.  Para ajudar a festa, temos o Xamarin Studio.

Descrição

O Xamarin Studio é um IDE que traz consigo um vasto conjunto de features, o que irá ajudar ao desenvolvimento de aplicações visualmente atractivos e com relativa facilidade, utilizando todo o poder do C#.  Neste artigo, vou mostrar como podem criar uma aplicação para dispositivos Android, uma app de introdução muito simples. Convém verificar durante a instalação do IDE se o Android SDK é instalado (é instalado normalmente junto com o Xamarin Studio), pois sem ele não vamos poder criar qualquer tipo de projecto.

Continuar a ler

Plotagem de dados “em tempo real” com Python usando matPlotLib

Introdução

Uma das tarefas mais comuns quando se trabalha com aquisição de dados, é a representação dos mesmos em gráficos, de forma a serem mais facilmente interpretáveis pelo utilizador. Na verdade seja para um uso de hobbie, seja para uma utilização mais científica ou profissional, na maior parte dos casos, acabamos quase sempre por preferir a leitura gráfica dos dados, o que nos permite rapidamente uma noção mais ampla do contexto visível.

Como é do conhecimento do leitor, hoje em dia existe uma grande quantidade de dispositivos que transmitem dados via USB, usando conversão USB – Série, para a transmissão dos dados adquiridos, referentes a um ou mais parâmetros num contexto ou ambiente. No entanto o que a maioria dos dispositivos tem em comum, é a forma como transmite os dados para o computador, normalmente usando um cabo USB ou série e transmitindo os dados em formato de texto simples. Ao longo deste artigo irá ser apresentado o código para receber dados de um conjunto de quatro sensores independentes, ligados a um mesmo dispositivo que os transmite via RS232 e posterior apresentação em modo gráfico, usando a linguagem Python e a biblioteca matplotlib, para nos desenhar o gráfico em tempo “quase real”. (Para os mais distraídos a transmissão via RS-232 é um padrão de protocolo para troca serial de dados binários entre um DTE – Data Terminal Equipment e um DCE – Data Communication Equipment. Normalmente usado nas portas série dos computadores.)

Continuar a ler

IPv6 para Programadores

O crescimento da Internet

A Internet como a conhecemos hoje teve as suas origens na ARPANET [1], a primeira rede a implementar o conjunto de protocolos IP (Internet Protocol) [2], do qual o mais conhecido é o TCP (Transmission Control Protocol) [3].

Pretendia-se um protocolo que transmitisse informação, dividida em pacotes de tamanho reduzido, e cuja gestão de rede fosse descentralizada, já que em tempo de Guerra Fria havia a possibilidade de destruição de partes da rede.

Continuar a ler

Xamarin 4 tem tudo que precisa para criar óptimas aplicações móveis!

Vamos dar uma olhada nalgumas das funcionalidades e melhorias incluídas no Xamarin 4.0 para o desenvolvimento de aplicações multi-plataformas, incluindo Android, iOS e UWP (Universal Windows Apps).

Apresentando Xamarin Forms 2.0

Desta vez começamos por um aplicativo simples chamado ” Lucky Winner” para selecionar aleatoriamente uma pessoa a partir de uma lista de participantes usando a classe System.Random comumente usada para gerar números aleatórios tal como em qualquer outro programa para .Net.

Continuar a ler

Aquisição de dados via TCP/IP com Genuino (Arduino)

Introdução

Recentemente a tão conhecida marca Arduino , fundada por Massimo Banzi, David Cuartielles, Tom Igoe e David Mellis e toda uma comunidade, sofreu uma mudança de nome, para os produtos destinados a outros mercados fora dos EUA, passando a usar o nome Arduino apenas nos EUA e o nome Genuino, em todos os restantes mercados. Falo em marca, pois não se refere apenas a uma board, mas a toda uma “marca” de circuitos baseados em microcontroladores e projectos com base numa mesma filosofia de open-hardware. Não me alongando mais sobre o tema, esta mudança teve origem numa questão legal, que é muito bem apresentada por Maximo Banzi, no keynote que apresentou na Maker Fair e pode ser visto no youtube. Assim sendo, de agora avante, neste artigo, o circuito anteriormente conhecido por Arduino, será designado por Genuino.

Continuar a ler

Cross-Platform – “A soma de todas as mudanças”

Cada vez mais ouvimos falar em cross-platform! Não é algo novo, é algo já antigo em verdade se diga! Se nos referirmos ao cross-platform como a capacidade de compilar e correr o mesmo código em múltiplas plataformas de hardware poderemos recuar tanto quanto a criação da linguagem C, por Dennis Ritchie e Ken Thompson em 1972, quando trabalhavam nos Bell Labs. De forma brilhante, estes senhores decidiram escrever uma linguagem que permitisse compilar o código e executá-lo independentemente do hardware. Inicialmente era um DEC PDP-7, posteriormente um DEC PDP-11, tendo a linguagem sido utilizada para escrever maior parte do kernel do sistema operativo UNIX.

Continuar a ler