quarta-feira, 31 de outubro de 2012

Programação C

Srs alunos:

Segue a solução do exercício:

Elabore uma função (e um programa para testá-la) que solicite um número inteiro ao usuário e crie um novo número inteiro com os dígitos em ordem inversa. Por exemplo, uma execução do programa é:

Digite um número inteiro: 5382

Seu número invertido é:   2385


----------------------------------------------------------------------- 

#include <stdio.h>
#include <stdlib.h>
#include <string.h>
/* Elabore um programa que solicite um número inteiro ao usuário
 e crie um novo número inteiro com o s dígitos em ordem inversa.
 Por exemplo, uma execução do programa é:

Digite um número inteiro: 5382
Seu número invertido é:   2385 */

int inverte (unsigned int,unsigned int); // protótipo da função

int main()
{   unsigned int N_inv , num, peso=1,num_digitos,i;
    char num_string[10];
    printf("Digite um um numero inteiro: ");
    gets(num_string);
    num_digitos=strlen(num_string); // descobre o numero de digitos
    num=atoi(num_string);
    for(i=1;i<num_digitos;i++)peso=peso*10; // determina o peso maximo
    N_inv=inverte(num,peso);
    printf("\nSeu n\xA3mero invertido \x82:   %d",N_inv);
    return 0;
}

int inverte (unsigned int num, unsigned int peso)
{   unsigned int num_inv=0,resto;
    while(num>0)
    {
        resto=num%10;   // obtem o resto
        num=num/10;     // atualiza numero
        num_inv = num_inv + peso*resto; // compoe o numero
        peso=peso/10;    // atualiza o peso
    }
    return num_inv;
}

Programação C - Tecnólogo - Aula de 01/11

Srs alunos da turma 2030411A:

Segue o link para acessar o material da nossa próxima aula. O material é de autoria do prof. Ugo Dias da UNB.

Fiquem atentos para um pequeno erro na página 13 do material:

  • enquanto que as variáveis estáticas externas somente podem ser acessadas pelas funções do mesmo programa-fonte e definidas abaixo de suas declarações. (Faltou a palavra "estáticas")

Até amanhã!

terça-feira, 30 de outubro de 2012

Ficção científica x realidade

Pessoal:


Recentemente, li, em uma revista nacional de grande tiragem, que um cientista da Nasa pretende testar em Laboratório o sistema de propulsão  que possibilitava que a nave Enterprise da série Jornada nas Estrelas (Star Trek) viajasse pelas galáxias - a dobra espacial (warp drive). Basicamente, a dobra espacial consiste em distorcer o espaço ao redor da nave, expandindo o espaço na parte traseira e contraindo na parte dianteira, impulsionando a nave acima da velocidade da luz (em relação à Terra). Assim, viagens que hoje durariam dezenas de anos poderiam ser feitas em meses. É claro que a dobra a ser criada em laboratório consumirá uma quantidade de energia minúscula quando comparada a energia necessária para deslocar uma nave. Porém, para dar um grande passo, é necessário começar com um bem pequeno.

Vale lembrar que Arthur Clarke, o maior escritor de ficção científica de todos os tempos, previu, em 1945, que os satélires geoestacionários seriam utilizados para estabelecer a comunicação entre diversos pontos do globo terrestre. O primeiro satélite foi lançado apenas em 1957.

Outra previsão de Clarke que, segundo o famoso consultor de tecnologia Ray Kurzweil, deve se tornar realidade daqui a 30 anos, é a criação de computadores conscientes, capazes de conversar com um ser humano (sem a intervenção de outro ser humano, é claro). Quem assistiu "2001, Uma Odisséia no  Espaço" deve lembrar do computador Hall! Tudo bem, neste caso Clarke estaria 30 anos adiantado na sua previsão. Vale a pena ler a obra de Clarke para conhecer o mundo que ele imaginou e que muito tempo depois começa a se materializar.

Livros de Arthur Clarke que eu recomendo (para começar):
  Todos estes livros podem ser encontrados na Estante Virtual


Vale a pena, também, ler o livro "A Era das Máquinas Espirituais" de Ray Kurzweil que apresenta uma visão dos avanços tecnológicos que resultarão na criação de computadores conscientes. Uma previsão de Kurzweil neste livro, que já foi antecipada, em 1966, na Série Jornada das Estrelas (a mesma da "dobra espacial"), é o surgimento dos tradutores (tradução de linguagem fala-fala) em tempo real. Na Enterprise, existia um tradutor universal que permitia a comunicação com os extraterrestres.
" A Era das Máquinas Espirituais" é uma publicação da Editora Aleph. A Editora Aleph está reeditando, para a alegria dos leitores de ficção científica, diversos títulos que por muito tempo estiveram indisponíveis, como a saga Duna de Frank Herbert, adaptada para o cinema (os filmes, porém, não recomendo).

Até breve!

Microprocessadores - Aula de 31/10

Senhores Alunos:

Cliquem aqui para acessar o material da próxima aula.

Boa Noite!

segunda-feira, 29 de outubro de 2012

Programação C - Solução de exercício

Senhores alunos da turma 2030411A (Tecnólogo):

Segue a solução do programa para estimar o valor da conta de energia (com  apenas 5 itens).

----------------------------------------------------------------------

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


/******************************************************

Faça um programa para estimar o valor da conta de
energia elétrica em função dos equipamentos presentes
na casa do consumidor.
– Para cada aparelho escolhido deve ser perguntado o
número de dias em que o equipamento é utilizado
durante o mês e as horas de utilização dia.
– No caso das lâmpadas, perguntar ainda o número de
lâmpadas.
– No caso de aparelhos de uso contínuo (refrigerador) só
acumular o número de kwh.
– Prever 20 itens.
– Calcular o valor da conta com base na tabela atual da
concessionária de energia.
– http://www.inmetro.gov.br/consumidor/tabelas.asp


******************************************************/

int main()
{  int caso=1,n_15=0;
   float consumo=0,horas,valor;
   const float TARIFA_1=0.377;
   const float TARIFA_UP=0.446820;
   while(1)
   {   if(caso==0)break;
       printf("Escolha um eletrodomestico\n");
       printf("<1> Lampada compacta de 15W\n");
       printf("<2> Chuveiro eletrico\n");
       printf("<3> Refrigerador duplex\n");
       printf("<4> Televisao de LED 33 polegadas\n");
       printf("<5> Notebook\n");
       printf("<0> Calcular valor do consumo\n");
       scanf("%d", &caso);
       switch (caso)
       {
          case 1:
                printf("Quantas lampadas?\n");
                scanf("%d",&n_15);
                printf("Quantas horas ficam ligadas por dia?\n");
                scanf("%f",&horas);
                consumo = consumo + 0.015*n_15*horas*30;
                system("cls");
                printf("Consumo Parcial = %.2f kWh\n\n", consumo);
                break;
          case 2:
                printf("Quantas horas de uso por dia?\n");
                scanf("%f",&horas);
                consumo = consumo + 5*horas*30;
                system("cls");
                printf("Consumo Parcial = %.2f kWh\n\n", consumo);
                break;
           case 3:
                consumo = consumo + 52;
                system("cls");
                printf("Consumo Parcial = %.2f kWh\n\n", consumo);
                break;
           case 4:
                printf("Quantas horas de uso por dia?\n");
                scanf("%f",&horas);
                consumo = consumo + 0.07*horas*30;
                system("cls");
                printf("Consumo Parcial = %.2f kWh\n\n", consumo);
            break;
            case 5:
                printf("Quantas horas de uso por dia?\n");
                scanf("%f",&horas);
                consumo = consumo + 0.04*horas*30;
                system("cls");
                printf("Consumo Parcial = %.2f kWh\n\n", consumo);
            break;
          case 0:
                printf("Voce saiu do programa!\n\n");
            break;
          default:
            printf("Escolha novamente\n\n");
            break;
        }
   }
    if(consumo>150)
        valor = 150*TARIFA_1 + (consumo-150)*TARIFA_UP;
    else
        valor = consumo*TARIFA_1;
    printf("Sua conta \x82 de R$ %.2f\n",valor);

   return 0;
}


Programação C - Tecnólogo - Aula de 30/10


Senhores alunos da turma 2030411A (TECNÓLOGO):

Cliquem aqui para baixar o material da próxima aula.


Até a próxima postagem!

quinta-feira, 25 de outubro de 2012

Microprocessadores - Aula de 26/10

Senhores Alunos:

Cliquem aqui para acessar o conteúdo da próxima aula.

  • Arquiteturas e número de endereços;
  • Arquitetura Von Neumann x  Arquitetura Harvard;
  • CISC x RISC;
  • O "Neander" RISC.

Até breve!

quarta-feira, 24 de outubro de 2012

Introdução a Linguagem C++ - Parte I

Pessoal:


Estou disponiblizando, aos interessados, um curso introdutório de C++ voltado para programadores com alguma experiência em ANSI C. 

Para que as turmas que estão acompanhando as minhas aulas de C neste semestre possam acompanhar o curso, ele será disponibilizado em uma série de arquivos e com o "time" adequado,

Cliquem aqui para acessar a primeira parte do curso.


Boa leitura!

terça-feira, 23 de outubro de 2012

Microprocessadores - Aula de 24/10

Senhores alunos:

Cliquem aqui para acessar o material sobre o processador hipotético Ahmes de autoria do prof. Guntzel da UFPEL.

Até mais! 

Exercícios - Linguagem C

Senhores Alunos:

Seguem alguns exercícios selecionados aleatoriamente do livro:


MIZRANI, Victorine Viviane. Treinamento em Linguagem C. São Paulo: Pearson Prentice Hall, 2008.


--------------------------------------------------------------------------

1. Sabendo que o latão é obtido fundindo-se sete partes de cobre com três partes de zinco, faça um programa que solicite quantos quilos de latão se quer produzir e imprima quantos quilos de cobre e de zinco são necessários.


2. Faça um programa que imprima os caracteres da tabela ASCII de códigos 32 a 255. O programa deve imprimir cada caractere, seu código decimal e seu código hexadecimal.


3. Elabore um programa que solicite um número inteiro ao usuário e crie um novo número inteiro com o s dígitos em ordem inversa. Por exemplo, uma execução do programa é:


Digite um número inteiro: 5382

Seu número invertido é:   2385

4. Escreva um programa que encontre o menor inteiro positivo n que satisfaça as seguintes condições:


n/3 = x inteiros e resto 2

n/5 = y inteiros e resto 3
n/7 = z inteiros e resto  4.

--------------------------------------------------------------------------

Até breve!

Programação C - Tarefa I

Senhores alunos da turma 2030411A (TECNÓLOGO):

Cliquem aqui para acessar os requisitos da Primeira Tarefa. 


A tarefa deve ser enviada por e-mail até 1/11/2012 às 23h 59' 59''. O email deve conter: 
  • Pasta do projeto compactada;
  • O Arquivo fonte deve estar endentado, com cabeçalho contendo nome do autor e devidamente comentado.
  Será enviado uma confirmação do recebimento do e-mail.

Até a próxima postagem!

terça-feira, 16 de outubro de 2012

Programação C - Solução de exercício

Senhores alunos:

Segue a solução do exercício - Faça um programa que imprima na tela a sequência (usando laços):
*
**
***
****
*****
******
*******
----------------------------------------------------------------------

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

int main()
{   char i,cont;
    for(cont=1;cont<=7;cont++)
    {
        for(i=0;i<cont;i++)
            printf("*");
        printf("\n");
    }
    return 0;
}


Introdução a programação em Linguagem C - Aula de 22/10

Senhores alunos da turma 1880331A:

Cliquem aqui para acessar o material da próxima aula.

Não esqueçam de terminar os exercícios propostos nos slides da aula passada.

No mais, aproveitem as atividades da semana comemorativa do Jubileu de Prata do Departamento de Eletrônica.

Boa semana!


Programação C - Aula de 23/10

Senhores alunos da turma 2030411A:

Cliquem aqui para acessar o material da aula de 23/10.

Não esqueçam de fazer os exercícios propostos nos slides da aula passada.

No mais, aproveitem as atividades da semana comemorativa do Jubileu de Prata do Departamento de Eletrônica.

Boa semana!

terça-feira, 9 de outubro de 2012

Compra de livros usados

Boa tarde:

Antes de adquirir um livro, confira se o título está disponível na Estante Virtual, o maior acervo de livros usados do Brasil. Adquirir livros usados é mais econômico e mais ecológico.
As compras podem ser feitas com cartão de crédito através do PayPal. Se o livro estiver disponível em um livreiro de sua cidade, você pode efetuar a compra pessoalmente na loja física, economizando o frete.
 
Um abraço!

Lista de Exercícios - Processador hipotético Neander

Senhores alunos de Microprocessadores,

cliquem aqui para baixar a lista de exercícios sobre o processador Neander.

Até breve!

segunda-feira, 8 de outubro de 2012

Programação C - Aulas da semana

Senhores alunos da turma 2030411A:

Segue o link com o material das próximas aulas:

                    Próximas aulas

Até breve!

Introdução a Programação em Linguagem C - Aula de 8/10

Senhores alunos da turma 1880331A:

Segue o link com o material da próxima aula:

               Terceira Aula.

Um abraço!

quinta-feira, 4 de outubro de 2012

Microprocessadores - Aula de 5/10

Senhores Alunos:
Baixem aqui o material sobre sistemas de numeração.
Baixem aqui o material sobre o processador hipotético Neander de autoria do prof. Guntzel da UFPEL.   LINK CORRIGIDO EM 27/03/13!
Baixem aqui os simuladores dos processadores hipotéticos, elaborados pelo autor do livro Fundamentos de Arquitetura de Computadores, Prof. Raul Fernando Weber.
Até breve!

terça-feira, 2 de outubro de 2012

Programação C

Senhores alunos de Programação C (Tecnólogo):

Seguem os links com o material das primeiras aulas:
- Aula 1.
- Aula 2.

Baixe aqui o plano de ensino da disciplina.

Até a próxima postagem!

Microprocessadores - Aulas de 28/09 e 03/10

Senhores alunos da turma 2030411A:

Baixe aqui o material sobre história dos computadores e aqui um material introdutório sobre organização e arquitetura de computadores elaborado por um professor da Universidade do Minho (Portugal). 

Até breve!