sexta-feira, 5 de abril de 2013

Tipos de Softwares

Os softwares podem ser divididos em dois tipos principais, os Softwares de Sistema e os Softwares Aplicativos.

Software de Sistema:

Esse é responsável pelo funcionamento do próprio computador e de todo o hardware, incluiu o firmware(O BIOS dos computadores pessoais, por exemplo), drives de dispositivos e os mais famosos, os sistemas operacionais e geralmente uma interface gráfica que, em conjunto, permitem ao usuário interagir com o computador e seus periféricos. Alguns dos exemplos mais conhecidos são os Sistemas Operacionais: MS DOS, Windows, Linux, Mac OS.

Softwares Aplicativos:

Essa categoria envolve uma grande variedade de programas que nos permitem realizar as mais variadas tarefas especificas, tais como, edição de textos, cálculos, gestão de banco de dados, desenho e tratamento de imagens, navegação na internet(browser), correio eletrônico e etc.

Podemos acrescentar uma terceira categoria, não tão popular mais muito útil, especialmente para nós programadores, são os Softwares de programação, esses são os conjuntos de ferramentas que permitem ao programador desenvolver programas de computador usando diferentes alternativas e linguagens de programação, de forma prática. Inclui, entre outros:

  • Editores de texto
  • Compiladores
  • Intérpretes
  • Linkers
  • Depuradores
  • Ambientes de Desenvolvimento Integrado: Agrupamento das ferramentas anteriores, geralmente em um ambiente visual, de modo que o programador não precisa digitar vários comandos para a compilação, interpretação, depuração, etc. Geralmente equipados com uma interface de usuário gráfica avançada.

Essas são as principais categorias de softwares, podem ser encontradas varias outras de acordo com o maior ou menor nível de detalhamento, nos próximos posts estudaremos cada um separadamente.

Por: Luciano Alexandre de F. Silva
lucianocnphn@gmail.com

Clonezilla Server Edition Parte 02 - Instalação, Preparando o servidor Linux


Este artigo descreve as etapas para configurar o DRBL no:
  • Ubuntu Lucid (10.04), Maverick (10.10), Natty (11.04), Oneiric (11.10), Precise (12.04), Quantal (12.10).
  • Fedora 14, 17,
  • CentOS 5, 6.
Configurando o ambiente DRBL
  1. Preparando o servidor Linux
    Inicialmente devemos preparar o nosso servidor Linux para a utilização do Clonezilla SE, nesse primeiro passo devemos configurar as placas de rede do nosso servidor. Deveremos utilizar pelo menos duas placas de rede, uma para acesso a Internet, eth0 em modo NAT ou Bridge, e pelo menos uma placa de rede interna, eth1, para o ambiente DRBL, essa deve possuir IP privado, (principio de IP privado 192.168.x.x). Nosso próximo passo será remover ou desligar o serviço NetworkManager, caso ele esteja ativo no seu GNU/Linux. Para o Fedora você pode: chkconfig --del NetworkManager, chkconfig --del NetworkManagerDispatcher, e ligar o serviço de rede: ”rede chkconfig on”. Para o Debian ou Ubuntu, recomenda-se removê-lo completamente executando: apt-get remove network-manager. 
   Assim terminamos a primeira parte da configuração do nosso servidor, no nosso próximo post irei ensinar como instalar os pacotes necessários para o nosso o funcionamento do Clonezilla.

 Continua...


Por: Luciano Alexandre de F. Silva
lucianocnphn@gmail.com

sábado, 23 de fevereiro de 2013

Função Fatoral com Recursão

Este código mostra a implementação de uma função recursiva para calcular o fatorial de um número em C++

Funções recursivas são funções que chamam elas mesmas, até que uma determinada condição seja satisfeita, essa condição é chamada de caso base, no nosso caso, "if(numero==0)".
Um exemplo de execução desse programa é o seguinte, se pedirmos o fatorial de 5, o programa fará:

5*fatorial de 4.
5*4*fatorial de 3.
4*3*fatorial de 2.
4*3*2*fatorial de 1.
4*3*2*1*fatorial de 0.

Ao chegar no fatorial de 0, o resultado conhecido pelo programa é 1, como especificado no caso base, então, todos os outros fatoriais serão calculados até chegar ao resultado desejado.

#include <iostream>

using namespace std;

long int fatorial(long int numero);

int main(){
    long int num;
  
    cout << "Entre cm o número de elementos da sequência" << endl;
    cin >> num;
  
    cout << "O fatorial de " << num << " é " << fatorial(num);
  
    }

long int fatorial(long int numero){
  
    if (numero == 0 ){
        return 1;
        } else {
            return numero * fatorial(numero - 1);
        }
    }

segunda-feira, 4 de fevereiro de 2013

Desafios em C++ - Desafio 8

Uma empresa qualquer decidiu conceder um aumento de salários a seus funcionários de acordo com a tabela abaixo:


   0                   –          400,00       15%
   400,01           –          700,00       12%
   700,01           –       1.000,00       10%
1,000,01           –       1.800,00         7%
1.800,01           –       2.500,00         5%
                                   
Acima de 2.500,00  Sem aumento


Escreva um algoritmo que leia o salário atual de um funcionário e escreva o percentual de seu aumento e o valor do salário corrigido a partir desse aumento.


#include <iostream>

using namespace std;
   
   int main () {
   
    float sal;
    float ajust = 0; 
       
     cin >>  sal;
     
     if (sal >= 0 && sal <= 400){
       ajust = (sal * 115) / 100;
       
     }else if (sal >= 401 && sal <= 700 ){
         ajust = (sal * 112) / 100;
         
     }else if (sal >= 701 && sal <= 1.000){
         ajust = (sal * 110) / 100;
         
     }else if (sal >= 1.001 && sal <= 1.800){
         ajust = (sal * 107) / 100;
         
     }else if (sal >= 1.801 && sal <= 5.500){
         ajust = (sal * 105) / 100;
     }else {
         ajust = sal;
     }

   cout <<"Salario antigo é: " << sal <<"R$"<<endl;
   cout <<"Salario ajustado é: "<< ajust <<"R$"<<endl;


return 0;
}

sábado, 2 de fevereiro de 2013

Desafios em C++ - Desafio 7

Dado um conjunto de N valores informados pelo usuário, faça um algoritmo que:

1. Imprima os valores que não são negativos.
2. Calcule e imprima a média dos valores < 0.

#include <iostream>
using namespace std;

int main () {
    int vet [1000];
    int i, n;
    float cont = 0, soma = 0,  vn = 0;
   
    cout<<"Quantos números? "<<endl;
    cin >> n;
    
    cout <<"Digite todos os: " << n << " Números " << endl;
      for (i = 0; i < n; i++){
        cin>> vet [i];
      }
       
      cout <<"Positivos são: "<<endl;
      for (i = 0; i < n; i++){
        if (vet [i] >= 0){
            cout << vet [i] << " ";
        }
      }
      cout << endl;
      cout <<"A Média dos Negativos são: "<< endl;
      for (i = 0; i < n; i++){
        if (vet [i] < 0){
            soma += vet [i];
        vn += 1;
        }
       }
        cont = soma / vn;
        cout <<"\nA média é: " << cont << endl;

return 0;
}

quinta-feira, 27 de dezembro de 2012

Desafios em C++ - Desafio 6

Dado uma serie de 20 valores reais, faça um algoritmo que calcule e escreva a média aritmética destes valores, entretanto se a média obtida for maior que 8 deverá ser atribua 10 para a média.

#include <iostream>
using namespace std;

int main () {
float vet [20];
int i;
float soma = 0, media;

      for (i = 0; i < 20; i++){
              cin >> vet [i];
              soma += vet [i];              
      }
      
      media = soma / 20;
      
      if (media > 8){
         media = 10;
      }
          
      cout <<"A média é: "<< media << endl;

return 0;
}

quarta-feira, 26 de dezembro de 2012

A lógica por trás de um computador

   Um computador, como toda e quaquer máquina, é burro; eles não fazem nada se nós(programadores) não tivermos dito a ele como fazer, sendo assim dizer que a culpa por determinado erro é de um computador é uma expressão errada, na realidade aquele bug foi culpa de um programador que esqueceu ou não conseguio dizer ao computador o que fazer quando ele se deparar com determinada situação. 
    Ou seja temos que ensinar tudo a esta máquina... Como fazer para aceitar uma letra, como comunicar-se com o monitor, como "conversar" com o Hard Disk etc. O único modo de "ensinar" o computador a fazer qualquer coisa é através de programas (software). Um exemplo disso seria um gravador de disco, que contem as informações nescessarias para ensinar ao computador como gravar determinadas informações em um disco, claro que aqui vale lembrar que para isso é nescessario se ter um conjunto de hardware adequado.)
    Para construir os programas que dizem ao computador como fazer determinadas funções, utilizamos as linguagens de programação, ou seja, linguagens pelas quais nós podemos programar softwares, dizendo a eles que fazer e como fazeer. Existem dois tipos de linguagens de programação: as de baixo nível e as de alto nível.
    Os computadores interpretam tudo como números em base binária, ou seja, só entendem zero e um. As linguagens de baixo nível são interpretadas diretamente pelo computador, tendo um resultado rápido, porém é muito difícil e incômodo se trabalhar com elas. Exemplos de linguagens de baixo nível são a linguagem binária e a linguagem Assembly. Veja um pequeno exemplo de um código para somar dois números em Assembly(Baixo Nível):

                    .data
  soma:         .word 
                    .text
                    addi $t0, $t0, 5 # $to recebe 5 
                    addi $t1, $t1, 10 # $t1 recebe 10 
                    add $t2, $t1, $t0 #adiciona em $t2 a soma 5 + 10 
                    sw $t2, soma # armazena em soma o conteúdo de $st2 
                    jal print # chama a rotina print 
                   .data
                   .text
 print:          lw $a0, soma # carrega conteúdo de soma para syscall
                   li $v0, 1 # 1 especifica que vai imprimir um inteiro
                   syscall # implime o conteudo de soma
  C++ é considerada uma linguagem de Médio Nível, estando entre as linguagens de Baixo Nível e Alto Nível. Abaixo está o mesmo exemplo anterior mas dessa vez com o código em C++:
#include <iostream>
using namespace std;

int main() {
   float num1, num2;

   cout << "Digite os números que você deseja somar: " << endl;
   cin >> num1 >> num2;
   cout <<”O resultado da soma é: ” << num1 + num2 << endl;

return 0;
}

  Pascal é uma linguagem considerada de Alto Nível ou seja o mais próximo possível da nossa linguagem natural. Abaixo encontra-se o mesmo exemplo dos códigos anteriores. Mas dessa vez em Pascal.

program EXEMPLO_SOMA;
     var
     A, B, R : integer;
     begin
         write(‘Entre um valor para A: ’);
         readln(A);
         write(‘Entre um valor para B: ’);
         readln(B);
         writeln;
         R := A + B;
         writeln(‘O resultado corresponde a: ’,R);
         writeln;
    end;
end.


Referências: