4. 4
UNIVERSIDAD CENTRAL DEL ECUADOR
FACULTAD DE INGENIERÍA CIENCIAS FÍSICAS Y MATEMÁTICA
PROGRAMACIÓN
RESUMEN
El código de un programa básicamente consiste en la construcción de datos que tiene
una secuencia de instrucciones, escritas para realizar una tarea específica.
El programa que vamos a crear tiene como finalidad la construcción de varias cadenas
para luego ser invertidas.
Desde un punto de vista de la programación, una cadena podrá estar formada por
cualquier combinación finita de todo .En este mismo ámbito (el de la programación), se
utilizan normalmente como un tipo de dato predefinido, para palabras, frases o cualquier
otra sucesión de caracteres.
Con una clara definición del programa a realizar tomamos en cuenta que, es necesario
una correcta construcción y ejecución del programa (cadenas inversas).
Mediante el cual nos daremos cuenta una vez más que en el mundo de la programación
todo es posible, de la construcción de programas simples podemos pasar a construir
programas que requieran de un mayor conocimiento.
El programa nos deja como legado que la programación no solo ayuda al mundo
matemático, si no que abarca todas ramas y ciencias de estudio, el programa será de gran
ayuda a los estudiosos de la lengua a una mejor comprensión de las frases invertidas.
5. 5
INTRODUCCIÓN
“A veces a la persona a la que nadie imagina capaz de nada, es la que haces cosas
que nadie imagina”.
ALAN TURING.
El programa que vamos a realizar consiste en la construcción de un programa que
específicamente nos va a permitir generar cadenas inversas.
Las palabras o frases inversas básicamente son aquellas que se leen de derecha a
izquierda en algunos casos su significado no va a cambiar, pero existen casos que su
significado a variar completamente. Habitualmente, estas frases se resienten en su
significado cuanto más largas son.
Para la construcción y aplicación del programa vamos a necesitar de todos los
conocimientos que hemos adquirido a lo largo de este periodo, así como también de las
fuentes de consulta que podamos adquirir, para un mejor aprendizaje vamos a construir
el programa en varios lenguajes, lo cual nos permitirá aplicar mejor nuestros
conocimientos y a su vez ir mejorando cada vez más el código del programa.
La realización del programa tienes como finalidad una mejor visualización y
conceptualización de la definición de cadenas, así como también nos ayuda a comprender
la gran ayuda que proporciona tener conocimiento de programación, ya que se los pude
aplicar para resolver problemas de la vida diaria.
6. 6
CAPÍTULO I
EL PROBLEMA
ANÁLISIS CRÍTICO
El gran mundo de la programación nos permite darnos cuenta que puede ser utilizado
en todos los ámbitos desde las matemáticas hasta la literatura.
La programación nos ayuda a fortalecer nuestra lógica ya que se la aplica para la
realización de algoritmos, luego con la ayuda de las distintas herramientas de los
diferentes lenguajes de programación, ser transformados en unos éxitos programas que
nos ayudan a resolver algunas de las dificultades que podemos encontrar en la vida
cotidiana.
Un claro ejemplo es el programa que vamos a realizar, el cual consiste en la ejecución de
cadenas inversas en Visual Basic, C, Java.
Como ya mencionamos anteriormente las cadenas inversas son frases o palabras que se
las lee de derecha a izquierda.
Si nos damos cuenta este grupo de frases tienen relación con gramática, y aunque son
campos muy distintos los problemas que existen dentro de la misma pueden ser resueltos
por los diferentes lenguajes de programación, y así nuevamente concluimos que el mundo
de la programación está ligado a resolver algunos problemas de la vida cotidiana.
7. 7
OBJETIVOS
Objetivo general.
Construir un programa que permita la ejecución de cadenas inversas, a través de la
aplicación de varios conocimientos de programación en sus diferentes lenguajes, y así
ampliar nuestro conocimiento en los diferentes lenguajes de programación.
Objetivos específicos.
Investigar y ampliar nuestros conocimientos de los lenguajes de programación.
Investigar y aplicar nuevas herramientas en los diferentes lenguajes de
programación.
Aplicar de manera correcta y satisfactoria todos conocimientos aprendidos.
Explicar la utilización de los distintos lenguajes de programación en problemas
de la vida cotidiana.
8. 8
JUSTIFICACIÓN
La realización del programa de cadenas inversas tiene como fin poder explicar, la
utilización de los distintos lenguajes de programación en problemas de la vida cotidiana.
Para ello vamos a estudiar e identificar correctamente la utilización y funcionamiento que
cada herramienta posee en los distintos lenguajes de programación.
Teniendo en claro todos estos conocimientos, parámetros y términos podremos mejorar
cada vez más el código que construyamos y explicaremos el porqué del uso de la
programación para la ejecución de un programa en diferentes lenguajes de programación.
Podremos comprender cuan amplio es el mundo de la programación ya que es utilizado
y requerido para todas las ramas y ciencias de estudio, como el programa que construimos
ya que el mismo se basa en definiciones gramaticales que a través de algoritmos y la
utilización de secuencias lógicas se transformara en un problema de la vida diaria
solucionado por programación.
9. 9
CAPÍTULO II
“MARCO TEÓRICO”
2.1. Antecedentes
2.1.2. Perspectiva histórica
Para crear un programa, y que la computadora lo intérprete y ejecute las instrucciones
escritas en él, debe usarse un lenguaje de programación. En sus inicios las computadoras
interpretaban sólo instrucciones en un lenguaje específico, del más bajo nivel, conocido
como código máquina, siendo éste excesivamente complicado para programar.
De hecho sólo consiste en cadenas de números 1 y 0 (sistema binario). Para facilitar el
trabajo de programación, los primeros científicos que trabajaban en el área decidieron
reemplazar las instrucciones, secuencias de unos y ceros, por palabras o letras
provenientes del inglés; las codificaron y crearon así un lenguaje de mayor nivel, que se
conoce como Assembly o lenguaje ensamblador.
Por ejemplo, para sumar se usa la letra A de la palabra inglesaadd (sumar). En realidad
escribir en lenguaje ensamblador es básicamente lo mismo que hacerlo en lenguaje
máquina, pero las letras y palabras son bastante más fáciles de recordar y entender que
secuencias de números binarios. A medida que la complejidad de las tareas que realizaban
las computadoras aumentaba, se hizo necesario disponer de un método sencillo para
programar. Entonces, se crearon los lenguajes de alto nivel.
Mientras que una tarea tan trivial como multiplicar dos números puede necesitar un
conjunto de instrucciones en lenguaje ensamblador, en un lenguaje de alto nivel bastará
con sólo una. Una vez que se termina de escribir un programa, sea en ensamblador o en
algunos lenguajes de alto nivel, es necesario compilarlo, es decir, traducirlo completo a
lenguaje máquina.
10. 10
2.1.2. Léxico y programación.
La programación se rige por reglas y un conjunto más o menos reducido de órdenes,
expresiones, instrucciones y comandos que tienden a asemejarse a una lengua natural
acotada (en inglés); y que además tienen la particularidad de una reducida ambigüedad.
Cuanto menos ambiguo es un lenguaje de programación, se dice, es más potente.
11. 11
2. 2 Marco Teórico
2.2.1 Lenguajes de Programación
Un lenguaje de programación es un lenguaje formal diseñado para expresar
procesos que pueden ser llevados a cabo por máquinas como las computadoras.
Pueden usarse para crear programas que controlen el comportamiento físico y lógico de
una máquina, para expresar algoritmos con precisión, o como modo de comunicación
humana.
Está formado por un conjunto de símbolos y reglas sintácticas y semánticas que definen
su estructura y el significado de sus elementos y expresiones. Al proceso por el cual se
escribe, se prueba, se depura, se compila (de ser necesario) y se mantiene el código
fuente de un programa informático se le llama programación.
El desarrollo lógico del programa para resolver un problema en particular:
Escritura de la lógica del programa empleando un lenguaje de programación
específico (codificación del programa).
Ensamblaje o compilación del programa hasta convertirlo en lenguaje de máquina.
Prueba y depuración del programa.
2.2.2 Cadenas.
En programación, si no se ponen restricciones al alfabeto, una cadena podrá estar
formada por cualquier combinación finita de todo el juego de caracteres disponibles (las
letras de la 'a' a la 'z' y de la 'A' a la 'Z', los números del '0' al '9', el espacio en blanco ' ',
símbolos diversos '!', '@', '%', etc).
En este mismo ámbito (el de la programación), se utilizan normalmente como un tipo de
dato predefinido, para palabras, frases o cualquier otra sucesión de caracteres.
En este caso, se almacenan en un vector de datos, o matriz de datos de una sola fila
(array en inglés).
12. 12
Las cadenas se pueden almacenar físicamente:
Seguidas.
Enlazados letra a letra.
Generalmente son guardados un carácter a continuación de otro por una cuestión de
eficiencia de acceso.
Un caso especial de cadena es la que contiene cero caracteres, a esta cadena se la
llama cadena vacía; en teoría de autómatas es común denotar a la misma por medio de la
letra griega .
Operación con cadenas de caracteres.
Si consideramos las cadenas como un tipo de datos, hay que definir (o conocer) cuales
son las operaciones que podemos hacer con ellas.
Asignación: Consiste en asignarle una cadena a otra.
Concatenación: Consiste en unir dos cadenas o más (o una cadena con un carácter)
para formar una cadena de mayor tamaño.
Búsqueda: Consiste en localizar dentro de una cadena una subcadena más pequeña o
un carácter.
Extracción: Se trata de sacar fuera de una cadena una porción de la misma según su
posición dentro de ella.
Comparación: Se utiliza para comparar dos cadenas.
Ejemplo:
Representación de cadenas en el lenguaje C.
Una cadena suele ser representada entre comillas dobles superiores ("palabra"), mientras
que un carácter de esa cadena (un char en inglés) suele ser representado entre comillas
simples ('p'). Por ejemplo, en C:
charAt c = 'a';
13. 13
char str[5] = "hola";
Generalmente para acceder a un carácter en una posición determinada se suele usar la
forma variable [posición] como cuando se accede a un vector.
Para poder mostrar una comilla (") dentro de la cadena y no tener problemas con las
comillas que la delimitan, se usan secuencias de escape.
Una forma común, en muchos lenguajes, de escapar un carácter es anteponiéndole un «»
(sin comillas), p. e.: «"» (sin comillas).
14. 14
CAPÍTULO III
DESARROLLO
Palindromos en Visual Basic,C,Java.
3. Desarrollo.
CÓDIGO JAVA:
package nuevoo1;
import java.util.*;
public class Nuevoo1 {
public static void main(String[] args) {
//Habilito entrada de datos
Scanner lectura=new Scanner(System.in);
//System.out.println("Ingrese las palabras");
//String cadena=lectura.nextLine();
char cadena2[][]=new char[10][10];
char cadenaorig[][]=new char[10][10];
String cadenainvertida="";
int contador=0, j, numpalb;
char ascii;
int dim[]=new int [10];
System.out.println("sr. usuario por favor ingrese numero de
palabras con las que desea trabajar");
numpalb=lectura.nextInt();
String s = new String();
System.out.println(" por favor ingrese palabras");
for(j=0;j<=numpalb ;j++)
{
s= lectura.nextLine();
dim[j]=s.length();
cadenaorig[j]=s.toCharArray();
}
//aqui logré imprimir solo los números a los q pertenecen
los caracteres pero no me salen los caracteres
System.out.println(cadenaorig[j]);
for(int i=0;i<s.length();i++){
ascii=s.charAt(i);
System.out.println(ascii + s.charAt(i) );
}
15. 15
int i;
// y pues aquí, pues aqui no aparece esta parte cuando se
imprime
for (i=0;i<=numpalb;i++)
{
int k=0;
for (j=dim[i]-1;j>=0;j--)
{
cadena2[i][k]= cadenaorig[i][j];
k++;
}
}
System.out.println(cadena2[j]);
for( i=0;i<s.length();i++)
{
ascii=s.charAt(j);
System.out.println(ascii + s.charAt(j) );
}
}
}
//Tranformacion de cadena a ascii
/* System.out.println("Valor de la cadena en codigo Ascii");
for(int i=0;i<cadena.length();i++){
int ascii=cadena.charAt(i);
System.out.println(ascii +" ->"+ cadena.charAt(i));
}
//Invertir cadena ingresada
for(int i=cadena.length()-1;i>=0;i--){
contador=contador+1;
//Asignacion de acumulacion
cadenainvertida+=cadena.charAt(i);
}
System.out.println("Cadena invertidan"+cadenainvertida);
System.out.println("El numero de caracteres en la cadena es
de :n"+contador);*/
17. 17
CÓDIGO VSB:
Sub Hola()
Dim texto(100) As String
Dim dimension As Integer
Dim i As Integer
Dim invertir As String
Dim j As Integer
Dim dest(100) As String
Dim ch As String
Dim asci As Integer
dimension = InputBox("Ingrese con cuantas palabras desea trabajar: ")
i = 0
While (i < dimension)
texto(i) = InputBox("Ingrese Texto :" & i)
Worksheets("hoja1").Cells(1 + i, 1).Value = texto(i)
i = i + 1
Wend
i = 0
18. 18
While (i < dimension)
invertir = StrReverse(texto(i))
Worksheets("hoja1").Cells(1 + i, 2).Value = invertir
i = i + 1
Wend
j = 0
While (j < dimension)
For i = 1 To Len(texto(j))
ch = Mid(texto(j), i, 1)
asci = Asc(ch)
dest(j) = dest(j) + CStr(asci)
Next i
Worksheets("hoja1").Cells(1 + j, 3).Value = asci
j = j + 1
Wend
End Sub
20. 20
CÓDIGO C:
// ConsoleApplication1.cpp: define el punto de entrada de la
aplicación de consola.
//
#include "stdafx.h"
#include "stdlib.h"
#include "string.h"
int _tmain(int argc, _TCHAR* argv[])
{
int dimension, i, j, k;
char cadena2[10][50];
char cadenaorig[10][50];
int numpalb;
printf("sr.usuario por favor ingrese el número de palabras
con las que desea trabajar n");
scanf_s("%d", &numpalb);
fflush(stdin);
for (i = 0; i < numpalb; i++)
{
printf("sr.usuario por favor ingrese palabra n ");
gets_s(cadenaorig[i]);
printf("n");
}
for (i = 0; i<numpalb; i++)
{
int k = 0;
for (j = 0; j < cadenaorig[i][j]; j++)
{
printf("%d "" == >"" %c n t",
cadenaorig[i][j], cadenaorig[i][j]);
}
cadena2[i][k] = '0';
printf("n");
}
for (i = 0; i<numpalb; i++)
{
int k = 0;
for (j = strlen(cadenaorig[i]) - 1; j >= 0; j--)
{
cadena2[i][k] = cadenaorig[i][j];
k++;
21. 21
}
cadena2[i][k] = '0';
printf("n");
}
for (i = 0; i<numpalb; i++)
{
puts(cadena2[i]);
printf("n");
}
for (i = 0; i<numpalb; i++)
{
int k = 0;
for (j = strlen(cadenaorig[i]) - 1; j >= 0; j--)
{
cadena2[i][k] = cadenaorig[i][j];
k++;
printf("%d,"" == >"" %c n t", cadenaorig[i][j],
cadenaorig[i][j]);
printf("n");
}
cadena2[i][k] = '0';
}
getchar();
getchar();
return 0;
}
23. 23
Definición de términos.
Codificación:Se llama codificación a la transformación de la formulación de un mensaje
a través de las reglas o normas de un código o lenguaje predeterminado.
Algoritmo: (algorithm) Método que describe cómo se resuelve un problema en término
de las acciones que se ejecutan y especifica el orden en que se ejecutan estas acciones.
Los algoritmos ayudan al programador a planificar un programa antes de su escritura en
un lenguaje de programación.
Array :(array, vector, lista) Objeto contenedor que almacena una secuencia indexada de
los mismos tipos de datos. Normalmente los elementos individuales se referencian por el
valor de un índice.
El índice es un valor entero que, suele comenzar, en 0 para el primer elemento, 1 para el
segundo y así sucesivamente.
Binario: (binary) Representación numérica en base 2. En esta base sólo se utilizan los
dígitos 0 y 1. Las posiciones de los d´digitos representan potencias sucesivas de 2.
Compilación: (compilation) Proceso de traducción de un lenguaje de programación.
Normalmente este proceso implica la traducción de un lenguaje de programación de alto
nivel a lenguaje de programación de bajo nivel, o el formato binario de un conjunto de
instrucciones específicas. La traducción dse realiza con un programa denominado
compilador.
Depuración: (debugging) Proceso de encontrar, fijar y eliminar errores en un programa.
Para estas tareas se suele utilizar una herramienta de programación conocida como
depurador. Libro Java 5 Depurador (debugger) Herramienta para ayudar a la localización
de errores de un programa: jdbc se proporciona como parte del J2SDK. Un depurador
puede establecer puntos de interrupción (breakpoint), parada simple a través de un
programa e inspecciona el estado de las variables.
IDE: (integrated development) Software para ayudar a lso programadores a escribir
código eficientemente.
24. 24
ASCII :(American Standard Code for Information Interchange): Código estándar
estadounidense para el intercambio de información. Código de siete bits adoptado como
un estándar mundial para facilitar el intercambio de datos entre distintos sistemas y
máquinas en ambientes conectados en red.
C++: Lenguaje de programación orientado a objetos, basado en el lenguaje C.
25. 25
CAPÍTULO IV
CONCLUSIONES Y RECOMENDACIONES
4. Conclusiones y Recomendaciones
4.1 Conclusiones.
Podemos concluir que cualquier ejercicio propuesto puede ser aplicado en
diferentes lenguajes de programación.
Comprender la aplicación de programación ya que es de gran ayuda en algunos
problemas cotidianos.
Conocer las herramientas que utilizamos en los lenguajes de programación ya
que no cumplen la misma función en todos los lenguajes, es por eso que es
recomendable conocer cuál es funcionamiento de las mismas.
Realizar un correcto análisis del programa planteado.
Buscar diferentes alternativas para optimizar la ejecución del programa.
El mundo de la programación es de gran ayuda, ya que nos muestra que es
utilizado en varios ámbitos.
4.2 Recomendaciones.
Comprender que función cumple cada una de las herramientas de los distintos
lenguajes de programación.
Emplear correctamente las herramientas de los distintos lenguajes de
programación.
Aplicar una buena lógica para desarrollar de manera eficaz los algoritmos.
Comprender con exactitud cuál es el problema a desarrollar.
26. 26
Bibliografía.
Michele Amelot .(2010). VBA Excel 2010 ; Barcelona; ENI.
Deitel,Harvey M. Deitel,Paul J;Como programar en C/C# y Java ; Mexico ;
PEARSON EDUCACIÓN.
Thierry GROUSSARD.(2010). C# Los fundamentos del lenguaje, Desarrollar
con Visual Studio 2010; Barcelona; Estelle DECHENAUD.
A Beginner’s Guide(2010), Java Fundamentals.
Webgrafia.
www.aprenderaprogramar.com/foros/ , 2015/04/05.
www.canalvisualbasic.net/foro/visual-basic-net/que-es-un-palindromo
2015/04/05.
comopasarprogramacion.wordpress.com/palíndromo-en-java/, 2015/04/08
tecdigital.tec.ac.cr/revistamatematica/cursoslinea/NUMERICO/excel/VBAExcel
-MNumericos.pdf, 2015/04/09.
personales.upv.es/jpgarcia/LinkedDocuments/macrosVisualBasicParaExcel.pdf,
2015/04/10.