febrero 26, 2013

EJEMPLO DE EMPLEADOS CON ENTRADA Y SALIDA EN 4 LENGUAJES C, C++, JAVA, PHP


Como programa de ejemplo emplearemos uno que interactúa con el usuario empleando entrada y salida estándar para leer un entero e imprimir el sucesor, en cada uno de los 4 lenguajes. Además de la sintaxis de este programa en cada lenguaje, se presenta la forma de compilar y ejecutar en un ambiente tipo Unix.

C

#include <stdio.h>
   
int
main(int argc, char *argv[])
{
  int k;
  printf("Por favor ingrese un número: ");
  scanf("%i",&k);
  k=k+1;
  printf("El sucesor del número que ingresó es: %i",k);
}
Si el anterior programa se mantiene en un archivo de nombre lee-esc-ent.c, desde la línea de comandos es posible compilarlo a código objeto (lee-esc-ent.o), después encadenarlo en un binario en formato ELF (lee-esc-ent-C) y ejecuta con:
$ cc -c lee-esc-ent.c
$ cc -o lee-esc-ent-C lee-esc-ent.o
$ ./lee-esc-ent-C



C++

#include <iostream>
using namespace std;
   
int
main()
{
        int k;
        cout << "Por favor ingrese un número: ";
        cin >> k;
        k=k+1;
        cout << "El sucesor del número que ingresó es: " << k << "\n";
 return 0;
}
Si el anterior programa se mantiene en un archivo de nombre lee-esc-ent.cpp (note que la extensión típica para programas en C es .c, mientras que para programas en C++ es .cpp), desde la línea de comandos es posible compilarlo a código objeto (lee-esc-ent.o), después encadenarlo en un binario en formato ELF (lee-esc-ent-CPP) y ejecutarlo con:
$ c++ -c lee-esc-ent.cpp
$ c++ -o lee-esc-ent-CPP lee-esc-ent.o
$ ./lee-esc-ent-CPP



PHP

 Por favor ingrese un número:
<?php
        fscanf(STDIN, "%d\n", $k);
        $k=$k+1;
        echo "El sucesor del número que ingresó es: $k\n";
?>
De los cuatro PHP es típicamente interpretado (los otros requieren una compilación prevía). Si el anterior programa se mantiene en un archivo de nombre lee-esc-ent.php (la extensión típica para programas en PHP es .php), desde la línea de comandos es posible interpretarlo con:
$ php lee-esc-ent.php






Java

 import java.io.*;

public class LeeEscEnt {
        public static void main(String args[]) {
                int k;

                System.out.print("Por favor ingrese un número: ");

                try {  
                        k=leeEntero();
                        k=k+1;
                        System.out.println("El sucesor es: "+k);
                }
                catch (IOException ioe) {
                        System.out.println("Error de E/S: " + ioe);
                }
        }

        static int leeEntero() throws IOException {
                int n=0;
                int sgn=1;

                int l=System.in.read();

                while(l!= -1 && (char)l==' ') {
                        l=System.in.read();
                }
                if (l=='-') {
                        sgn=-1;
                } else if (l=='+') {
                        sgn=1;
                }

                while(l != -1 &&  (char)l>='0' && (char)l<='9') {
                        n=n*10+(l-(int)'0');
                        l=System.in.read();
                }

                return n*sgn;
        }

}
Desde la línea de comandos este programa (mantenido en un archivo de nombre LeeEscEnt.java) se compila en bytecode (LeeEscEnt.class) que después puede ser ejecutado con la máquina virtual Java así:
$ export PATH=$PATH:/usr/local/jdk1.3.1-linux/bin/
$ javac LeeEscEnt.java
$ java LeeEscEnt

No hay comentarios:

Publicar un comentario