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
Suscribirse a:
Enviar comentarios (Atom)
No hay comentarios:
Publicar un comentario