sexta-feira, 26 de agosto de 2011

Standard ML

 

Estou aprendendo SML na aula de Linguagens de Programação, intao vou postando algumas coisas e exercicios sobre a linguagem

Página do projeto SML NJ (o copilador mais utilizado)

http://www.smlnj.org/

Wikipédia

Standard ML (SML) é uma linguagem de programação funcional de propósito geral modular com verificação e inferência de tipos em tempo de compilação. É popular entre pesquisadores de linguagem de programação e compiladores.

SML é um descendente moderno da ML (linguagem de programação) utilizado em lógica de funções computáveis (LCF). Distingue-se entre as linguagens utiliada devido sua característica funcional e devido sua especificação formal, dado como escrever regras e semântica operacional na definição da Standard ML

A Página do meu Professor Fernando (muito bom) tem mais informações sobre a materia e sobre o SML

http://homepages.dcc.ufmg.br/~fpereira/classes/dcc024/ementa/

Outros links em inglês

http://u.cs.biu.ac.il/~89-310/

 

alguns exercicios de SML

Escreva uma função cube, de tipo int -> int que retorne o cubo do seu parametro

fun cube x = x*x*x;

Escreva uma função cuber, de tipo real -> real que retorne o cubo de seu parametro.

fun cuber x:real = x*x*x;

Escreva a funcao fourth, de tipo 'a list -> 'a que retorne o quarto elemento da
lista passada como parametro. Nao se preocupe com a condicao de contorno em que a
lista de entrada possui menos que quatro elementos.

fun fourth a = hd(tl(tl(tl(a) )))

Exemplos de Codicionais em C

Todos os exercicios da Apostila de Algoritmos da UFJF Capitulo 3, Condicionais 1. Ler dois números inteiros e informar se o primeiro é maior, menor ou igual ao segundo. 1: */ exercicio 1 /*  
   2:  #include <stdio.h>
   3:  #include <stdlib.h>
   4:   
   5:  int main()
   6:  {
   7:      int a, b;
   8:   
   9:      printf("Entre com dois inteiros \n");
  10:      scanf("%d %d", &a, &b);
  11:   
  12:      if (a > b)
  13:   
  14:          printf("O primeiro e maior que o segundo. %d > %d", a , b);
  15:      else
  16:          if (a == b)
  17:              printf("O Primeiro e igual ao segundo. %d = %d", a, b);
  18:          else
  19:              printf("O Primeiro e menor que o segundo %d<%d", a, b);
  20:   
  21:      return 0;
  22:  }


2. Faça um programa para ler dois números inteiros, faça a divisão do primeiro pelo segundo (somente se o segundo for diferente de zero).
 
   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      float a, b;
   7:   
   8:      printf("Entre com dois inteiros \n");
   9:      scanf("%f %f", &a, &b);
  10:   
  11:      if (b != 0)
  12:          printf("A divisao %f / %f = %f", a,b,a/b);
  13:      else
  14:          printf("Impossivel divisao por 0");
  15:   
  16:      return 0;
  17:  }
  18:   
  19:  //opção com números inteiros como pede o exercicio
  20:  /*
  21:  
  22:  #include <stdio.h>
  23:  #include <stdlib.h>
  24:  
  25:  int main()
  26:  {
  27:      int a, b;
  28:  
  29:      printf("Entre com dois inteiros \n");
  30:      scanf("%d %d", &a, &b);
  31:  
  32:      if (b != 0)
  33:          printf("A divisao %d / %d = %d", a,b,a/b);
  34:      else
  35:          printf("Impossivel divisao por 0");
  36:  
  37:      return 0;
  38:  }
  39:  */


3. Ler um número inteiro e informar se ele é divisível por 2.

   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      int a;
   7:   
   8:      printf("Entre com um numero inteiro \n");
   9:      scanf("%d", &a);
  10:   
  11:      if ( a % 2 == 0 )
  12:          printf("O numero %d e par", a);
  13:      else
  14:          printf("O numero %d nao e par", a);
  15:   
  16:      return 0;
  17:  }




4. Altere o algoritmo anterior para que seja informado se o número é divisível por 2 e por 3 simultaneamente.

   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      int a;
   7:   
   8:      printf("Entre com um numero inteiro \n");
   9:      scanf("%d", &a);
  10:   
  11:      if ( a % 2 == 0)
  12:      if (a % 3 == 0)
  13:      printf("O numero %d e divisivel por 2 e 3 ao mesmo tempo", a);
  14:          else
  15:      printf("O numero %d e par mais nao e divisivel por 3 ao mesmo tempo", a);
  16:      else
  17:          if (a % 3 == 0)
  18:              printf("O numero %d nao e par mais e divisivel por 3", a);
  19:          else
  20:              printf("O numero %d nao e par nem divisivel por 3", a);
  21:      return 0;
  22:  }



5. Altere o algoritmo anterior para que seja informado se o número é divisível por 2 e por 3, mas que não seja divisível por 5. 
 
   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      int a;
   7:   
   8:      printf("Entre com um numero inteiro \n");
   9:      scanf("%d", &a);
  10:   
  11:      if ( a % 2 == 0)
  12:          if (a % 3 == 0)
  13:              if (a % 5 == 0)
  14:                  printf("O numero %d e divisivel por 2,3 e 5", a);
  15:              else
  16:                  printf("O numero %d e divisivel por 2 e 3 ao mesmo tempo e nao e divisivel por 5", a);
  17:          else
  18:              if (a % 5 == 0)
  19:                  printf("O numero %d e divisivel por 2 e 5 e nao e por 3", a);
  20:              else
  21:                  printf("O numero %d e divisivel por 3 e 5 e nao e por 2", a);
  22:      else
  23:          if (a % 5 == 0)
  24:              printf("O numero %d e divisivel por 5 e nao e por 2 e 3", a);
  25:          else
  26:              printf("O numero %d nao e divisivel por 2 e 3 ou 5", a);
  27:      return 0;
  28:  }




6. Faça um programa para ler dois números reais e verificar se ambos são maiores que zero. Caso positivo, informar “Valores são válidos”. Caso contrário, informar “Valores inválidos”. 
 
   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      float a, b;
   7:   
   8:      printf("Entre com dois inteiros \n");
   9:      scanf("%f %f", &a, &b);
  10:   
  11:      if (a > 0 && b > 0)
  12:          printf("Valores são válidos");
  13:      else
  14:          printf("Valores inválidos");
  15:   
  16:   
  17:      return 0;
  18:  }
  19:   



7. Tendo como dados de entrada a altura e o sexo de uma pessoa, construa um programa que calcule seu peso ideal, utilizando as seguintes fórmulas: para homens: (72.7*h)58 e para mulheres: (62.1*h)44.7 
   1:  #include <stdio.h>
   2:  #include <stdlib.h>
   3:   
   4:  int main()
   5:  {
   6:      int a;
   7:      float b,c;
   8:   
   9:      printf("Entre com o sexo 1.Masculino ou 2.Feminino \n");
  10:      scanf("%d", &a);
  11:      printf("Entre com sua altura no formato [1.86] \n");
  12:      scanf("%f", &b);
  13:   
  14:      switch (a)
  15:      {
  16:      case 1:
  17:          c=(72.7 * b) - 58;
  18:          printf("Seu peso ideal e: %f",c);
  19:          break;
  20:      case 2:
  21:          c=(62.1*b)-44.7;
  22:          printf("Seu peso ideal e: %f",c);
  23:          break;
  24:      default:
  25:          printf("Sexo invalido");
  26:      }
  27:   
  28:      return 0;
  29:  }
  30:   

8. Faça um programa que leia 3 comprimentos (x, y e z) e responda se eles formam um triângulo, ou seja, se  x < y + z e y < x + z e z < x + y. 
 
   1:   
   2:  #include <stdio.h>
   3:  #include <stdlib.h>
   4:   
   5:  int main()
   6:  {
   7:      int x,y,z;
   8:   
   9:      printf("Entre com tres valores inteiros \n");
  10:      scanf("%d %d %d", &x, &y, &z);
  11:   
  12:      if ((x < (y + z)) && (y < (x + z)) && (z < (x + y)))
  13:   
  14:          printf("Os valores %d, %d e %d formam um triangulo", x,y,z);
  15:      else
  16:          printf("Os valores %d, %d e %d NAO formam um triangulo", x,y,z);
  17:      return 0;
  18:  }
  19:   




   1:  /*
   2:  Desenvolver um algoritmo para ler o número do dia da semana e imprimir o seu respectivo
   3:  nome por extenso. Considerar o número 1 como domingo, 2 para segunda etc. Caso o dia
   4:  não exista (menor que 1 ou maior que 7), exibir a mensagem “Dia da semana inválido".
   5:  */
   6:  #include <stdio.h>
   7:  #include <stdlib.h>
   8:   
   9:  int main()
  10:  {
  11:      int a;
  12:      printf("Entre um valor de 1 a 7 \n");
  13:      scanf("%d", &a);
  14:      switch (a)
  15:      {
  16:      case 1:
  17:          printf("O dia 1 e Domingo");
  18:          break;
  19:      case 2:
  20:          printf("O dia 2 e Segunda");
  21:          break;
  22:      case 3:
  23:          printf("O dia 3 e Terca");
  24:          break;
  25:      case 4:
  26:          printf("O dia 4 e Quarta");
  27:          break;
  28:      case 5:
  29:          printf("O dia 5 e Quinta");
  30:          break;
  31:      case 6:
  32:          printf("O dia 6 e Sexta, Its Friday");
  33:          break;
  34:      case 7:
  35:          printf("O dia 7 e Sábado");
  36:          break;
  37:      default:
  38:          printf("Dia da semana inválido");
  39:      }
  40:   
  41:      return 0;
  42:  }
  43:   




   1:  /*
   2:  Fazer um algoritmo para ler dois números e um dos símbolos das operações: +,- * e /.
   3:  Imprimir o resultado da operação efetuada sobre os números lidos.
   4:  */
   5:  #include <stdio.h>
   6:  #include <stdlib.h>
   7:   
   8:  int main()
   9:  {
  10:      int a, b, operador;
  11:      float c;
  12:      printf("Entre dois valores \n");
  13:      scanf("%d %d", &a,&b);
  14:      printf("Entre com o Operador 1.+(soma) 2.-(subtracao) 3.*(multiplicacao) 4./ (divisao)");
  15:      scanf("%d",&operador);
  16:        switch (operador)
  17:      {
  18:      case 1:
  19:          printf("O resultado da soma de %d + %d = %d",a,b, a+b);
  20:          break;
  21:      case 2:
  22:          printf("O resultado da subtracao de %d - %d = %d",a,b, a-b);
  23:          break;
  24:      case 3:
  25:          printf("O resultado da multiplicacao de %d * %d = %d",a,b, a*b);
  26:          break;
  27:      case 4:
  28:          if (b == 0)
  29:          printf("Não existe divisão por 0");
  30:          else
  31:          c = (float)a/(float)b;
  32:          printf("O resultado da divisao de %d / %d = %f",a,b, c);
  33:          break;
  34:      default:
  35:          printf("Operador invalido");
  36:          break;
  37:      }
  38:   
  39:  return 0;
  40:  }
  41:   






   1:  /*
   2:  Os funcionários de uma empresa receberam um aumento de salário: técnicos (código = 1),
   3:  50%; gerentes (código = 2), 30%; demais funcionários (código = 3), 20%. Escrever um
   4:  algoritmo para ler o código do cargo de um funcionário e o valor do seu salário atual, calcular
   5:  e imprimir o novo salário após o aumento.
   6:  */
   7:  #include <stdio.h>
   8:  #include <stdlib.h>
   9:   
  10:  int main()
  11:  {
  12:      int b;
  13:      float a, c;
  14:      printf("Informe o valor atual do salario \n");
  15:      scanf("%f",&a);
  16:      printf("Entre com o codigo do funcionario \ntecnicos (codigo = 1) 50 por cento de aumento;\ngerentes (codigo = 2), 30 por cento de aumento;\ndemais funcionarios (codigo = 3), 20 por cento de aumento");
  17:      scanf("%d",&b);
  18:        switch (b)
  19:      {
  20:      case 1:
  21:          c = a + (a*0.50);
  22:          printf("Apos o aumento o novo salario do tecnico e %f ",c);
  23:          break;
  24:      case 2:
  25:          c = a + (a * 0.30);
  26:          printf("Apos o aumento o novo salario do gerente e %f ",c);
  27:          break;
  28:      case 3:
  29:          c = a + (a* 0.20);
  30:          printf("Apos o aumento o novo salario do funcionario e %f ",c);
  31:          break;
  32:      default:
  33:          printf("Funcionario invalido");
  34:          break;
  35:      }
  36:   
  37:  return 0;
  38:  }
  39:   




   1:  /*
   2:  Desenvolver um algoritmo para ler o valor inteiro da idade de uma pessoa e imprimir uma
   3:  das mensagens: se idade < 13: Criança, se 13 = idade < 20: Adolescente, se 20 = idade <
   4:  60: Adulto e se idade = 60: Idoso.
   5:  */
   6:  #include <stdio.h>
   7:  #include <stdlib.h>
   8:   
   9:  int main()
  10:  {
  11:     int a;
  12:     printf("Entre com a Idade\n");
  13:     scanf("%d",&a);
  14:     if (a < 13)
  15:     printf("Crianca");
  16:     else if (a < 20)
  17:          printf("Adolescente");
  18:          else if (a < 60)
  19:          printf("Adulto");
  20:              else
  21:              printf("Idoso");
  22:  return 0;
  23:  }
  24:   

quinta-feira, 25 de agosto de 2011

Imprimir o valor 2.346728
com 1, 2, 3 e 5 casas decimais



#include <stdio.h>

int main ()
{
         printf("Uma casa:  %.1f \n", 2.346728);
         printf("Duas casas:  %.2f \n", 2.346728);
         printf("Tres casas:  %.3f \n", 2.346728);
         printf("Cinco casas:  %.5f \n", 2.346728);
         return 0;
}

Ler uma temperatura em graus Celsius e apresentá-la convertida em graus Fahrenheit. A
fórmula de conversão: F ← (9*C+160)/5 


#include <stdio.h>
#include <math.h>

int main ()
{
    float c=0,f=0;
    printf ("Digite a temperatura em Graus Celsius:");
    scanf("%f",&c);
    f=(9 * c + 160) / 5;
    printf("A temperatura em Graus Fahrenheit e: %f \n",f);

    return 0;
}
Construir um algoritmo para ler 5 valores inteiros, calcular e imprimir a soma desses valores.


#include <stdio.h>
int main ()
{
    int n1,n2,n3,n4,n5,soma;
	printf("Digite cinco valores inteiros: ");
	scanf("%i",&n1);
	scanf("%i",&n2);
	scanf("%i",&n3);
	scanf("%i",&n4);
	scanf("%i",&n5);
	soma = n1 + n2 + n3 + n4 + n5;
	printf("\n%i + %i + %i + %i + %i = %i",n1,n2,n3,n4,n5,soma);
    return 0;
}

Licenciatura da Computação (Licomp)

Sou Aluno do curso de Licenciatura de Computação (Licomp) da UFJF e também ajudo a gerenciar o conteúdo do colalicomp um site com os exercícios do curso

Como tem a materia de algoritmos esse periodo eu resolvi postar todos os algoritmos resolvidos da apostila aqui
Esse semestre vamos ver C
como eu já programo em C/C++, Python, PHP resolvi fazer para ter registro e ajudar quem procurar
PS: Quase todos feitos por mim
PS2: A Apostila para quem quiser e essa 

Hello Word

Primeiro post como em uma linguagem de programação nova a primeira coisa que agente faz para ver se esta funcionando e um Hello Word

printf("Hello Word");
echo "Hello Word";
print("Hello Word")