Programação

Há alguns anos quando trabalhava prestando serviços no CPD de uma empresa, uma estagiária estava estudando C e comentou comigo que a melhor maneira de se aprender uma linguagem, era criando programinhas simples com coisas do cotidiano ou mesmo criar códigos para executar coisas aparentemente tolas. Ela tinha razão! Não existe nada melhor do que voce começar a entender a lógica de uma linguagem, criando seus próprios códigos para resolver problemas simples.

Como forma de compartilhar isso com quem gosta de aprender Java, segue um código simples que calcula a partir da digitação de sua idade, o número de batidas de seu coração desde seu nascimento.


/*
* Created on 25 de Junho de 2008, 15:06
*
* To change this template, choose Tools | Template Manager
* and open the template in the editor.
*/
import javax.swing.*;
/**
*
* @author jamaral
*/
public class CoracaoJoption {
public static void main (String args[])
{
//Declara a variavel tipo String que recebera a idade
String idade;
//Solicita ao usuario digitar sua idade atraves de uma caixa JOption

idade = JOptionPane.showInputDialog(null,”Digite sua idade em anos..”);

//Converte a string idade em inteiro para uso em um teste de entrada de dados
int teste = Integer.parseInt(idade);
if (teste <=0 || teste > 54) //Se for digitado uma idade menor que um ou maior que 54 envia mensagem ao usuario
{
JOptionPane.showMessageDialog(null,”Desculpe! Este programa so calcula idades entre 1 e 54 anos”);

}
else
{
//Armazena o total das batidas do coracao utilizando como base 75 pulsações por minuto
long resultado = (60*75*24*365)*teste;
JOptionPane.showMessageDialog(null,”Voce tem “+idade+” anos e seu coracao ja bateu “+
resultado+” vezes ate hoje!”);

}

}
}


Abaixo um outro exemplo utilizando arrays e collections.

import java.util.*;
public class Alghorithms {

private Character[] letras={‘J’,’A’,’A’};
private Character[] letrasCopia;
private List lista;
private List listaCopia;

public Alghorithms()
{
System.out.printf(“%s \n\n”,”Turma:PD 13A3 Nome: José Antonio do Amaral”);

lista=Arrays.asList(letras);
letrasCopia=new Character[3];
listaCopia=Arrays.asList(letrasCopia);
System.out.println(“Lista inicial:”);
output(lista);
Collections.reverse(lista);
System.out.println(“\nDepois de chamar reverse:”);
output(lista);
Collections.copy(listaCopia,lista);
System.out.println(“Depois da copia:”);
output(listaCopia);
System.out.println(“\nO vetor visualizado é:”);
for(Character a:letrasCopia)
System.out.printf(“%s”, a);

System.out.println();
Collections.fill(lista,’J’);
System.out.println(“Depois de chamar fill:”);
output(lista);
}

public static void main(String args[]) {
new Alghorithms();
}
private void output(List listaRef)
{
System.out.println(“A lista é:”);
for(Character element:listaRef)
System.out.printf(“%s “, element);

System.out.printf(“\nMax %s “, Collections.max(listaRef));
System.out.printf(“\nMin %s “, Collections.min(listaRef));
}

}


O programa que calcula as batidas do coração só que em linguagem C.

#include <stdio.h>
#include<stdlib.h>

int main()
{
int i;
double total;
int batim = 70;
int hora = 60;
int dias = 24;
int ano = 365;
printf(“Digite sua idade: “);
scanf(“%d”, &i);

total=(hora*batim*dias*ano)*i;
printf(“Sua idade e: “);
printf(“%d”, i);
printf(” e seu coracao ja bateu: “);
printf(“%f”,total);
printf(” ate a data de hoje.”);
system(“PAUSE”);
return 0;
}


Outro programa em C para calcular a tabuada de um número qualquer…

#include <stdio.h>
#include<stdlib.h>

int main()
{

int x, y, r;
printf(“Digite o numero para tabuada: “);

scanf(“%i”, &y);

for (x = 0; x<=10; x++)
{
r = y * x;
printf(“%i”, y);
printf(” x “);
printf(“%i”, x);
printf(” = “);
printf(“%i\n”, r);

}
system(“PAUSE”);
return 0;

}


Dica:
Se voce estiver utilizando a função sqrt() da biblioteca math.h do C em um script no ambiente Linux, voce terá que compilar o arquivo.c com a opção -ln.
Exemplo: gcc -ln <nome arquivo fonte.c> -o <nome arquivo executável>

ARDUÍNO

Comecei a programar Arduíno logo que surgiu. Em seguida vendi tudo, mas acabei retomando. Mais recentemente, voltei a ver o arduíno, como orientador de projeto dos meus alunos e este mês participei do curso na Escola Politécnica da USP (http://codeiot.org.br/) onde me atualizei. Só para relembrar segue um dos primeiros códigos que adaptei da página do próprio software do arduíno, para acionar um servo motor com potenciômetro que veio junto com o Kit do curso.

/*
Controlling a servo position using a potentiometer (variable resistor)
by Michal Rinott <http://people.interaction-ivrea.it/m.rinott&gt;

modified on 8 Nov 2013
by Scott Fitzgerald
http://www.arduino.cc/en/Tutorial/Knob
*/

#include <Servo.h>

Servo myservo; // create servo object to control a servo

int potpin = 0; // analog pin used to connect the potentiometer
int val; // variable to read the value from the analog pin

void setup() {
myservo.attach(3); // attaches the servo on pin 3 to the servo object
}

void loop() {
val = analogRead(potpin); // reads the value of the potentiometer (value between 0 and 1023)
val = map(val, 0, 1000, 0, 180); // scale it to use it with the servo (value between 0 and 180)
myservo.write(val); // sets the servo position according to the scaled value
delay(15); // waits for the servo to get there
}