Anda di halaman 1dari 12

Algortmica y programacin

De Ventura Memba en Programadores GQ++

PRESENTACIN. Bajo el inters de compartir mis conocimientos con los dems, y a peticin de una amiga, he decidido hacer una formacin completa aquellas personas que estn interesadas en el mundo de la programacin de software. Este curso no pretende formar a profesionales en esta disciplina, es ms bien una forma de integracin al arte de la programacin. Pero cierto es que haremos lo posible para sea provechoso. Posteriormente, y en base a la participacin que tengamos, decidiremos si es necesario mejorarlo. Animo a todos a participar. Para este primer mdulo no necesitamos ningn tipo de herramienta especfica, solo mnimos conocimientos en matemticas. He tratado de no hacerlo tan complicado a fin de que puedan participar personas de distintos perfiles acadmicos. INTRODUCCIN Todos los problemas de la vida cotidiana (en ocurrencia, los problemas de gestin) necesitan un desarrollo metdico para ser solucionados. La bsqueda de solucin a los problemas pasa generalmente por la descomposicin de este ltimo, en pequeas cuestiones fciles de resolver. En informtica, muy particularmente, se tratan por la lgica de programacin, determinando y adoptando los pasos convenientes para que usando el ordenador se alcance suficiente y rpidamente la solucin del problema. 1.1 OBJETIVOS DEL CURSO El objetivo primordial de este curso es dar a conocer los elementos bsicos que interviene en la programacin de una aplicacin sea cual sea el lenguaje utilizado. Este curso describe los elementos bsicos (variables, instrucciones, funciones, etc.); ofrece las tcnicas de resolucin de problemas y propone el medio de expresin (traduccin) en un lenguaje comprensible por el ordenador. Conducir al programador a la produccin de programas (Software) que sern utilizados como herramientas gestin. El programador deber tener en cuenta los recursos del ordenador (hardware) a su disposicin y el entorno informtico en el cual estos programas debern funcionar (sistema operativo). 1.2 NOCIN DE ALGORITMO Para la compresin de lo que es un Algoritmo basmonos en el siguiente enunciado: Hacer una tortilla. 1. Se enciende el fuego 2. Se posa sobre el la sartn 3. Se echa el aceite 4. Se rompe el huevo sobre el plato 5. Se le aaden los ingredientes
1

6. Se bate el huevo y se echa a la sartn Este enunciado describe cierto trabajo a realizar. Constatamos que el orden de las opciones tiene cierta importancia para que la finalidad sea alcanzada. Estas acciones respetan una secuencia, y esta manera de escribir se llama Algoritmo. Por ejemplo; un algoritmo puede pedirle al ordenador que calcule el precio total de una mercanca. Con esto se sobreentiende que una instruccin solo puede ser ejecutada si el ordenador la entiende. Si una operacin es muy compleja habr que descomponerla en acciones elementales o instrucciones compresibles. Un Algoritmo es pues, una serie de instrucciones ordenadas cronolgicamente, llevando sobre los objetos un universo finito, y que el procesador puede entender y ejecutar. Un Algoritmo debe respetar las siguientes reglas: Carencia de ambigedad. Nmero limitado de operaciones (Instrucciones). Las instrucciones deben ser efectivas (El hombre las puede visualizar manualmente.) Los objetos manipulados son precisos (los datos estn definidos).

1.3 NOCIN DE PROGRAMACIN. No se debe confundir el saber programar, que es lo ms importante, con conocer un lenguaje. La primera supone el dominio de la lgica de programacin que facilita al programador el cambio de lenguaje, ya que refirindose a su algoritmo busca simplemente su traduccin. Es cierto que las dificultades que se presentan provienen de las especificidades de cada lenguaje. La programacin conlleva dos etapas: Concepcin del algoritmo. Codificacin en un lenguaje de programacin (traduccin). 1.4 LA CODIFICACIN Consiste en escribir los trminos del algoritmo en un lenguaje de programacin elegido. 1.5 LENGUAJE DE PROGRAMACIN En realidad el ordenador trabaja en binario. El lenguaje de maquina se expresa en series de 0 y 1, pero como es tedioso y difcil para el hombre escribir todo un programa utilizando series de unos y ceros, por ello fueron creados los llamados lenguajes de programacin evolucionados, tales como BASIC, PASCAL, C, COBOL, FORTRAN, etc.

Esos lenguajes, muchos ms fciles que el de mquina, llevan la programacin ofreciendo al hombre una comunicacin prxima al lenguaje humano. Incorporan compiladores que traducen las instrucciones de lenguaje humano a lenguaje de mquina, que es el lenguaje binario. 2 DATOS Y ESTRUCTURAS ELEMENTALES. Este captulo ensea a escribir los datos ms elementales (variables) que son manipulados en los programas y las acciones elementales (instrucciones) que manipulan esos datos. 2.1 NOCIN DE VARIABLE. Pese a la gran diversidad de lenguajes, todos estn alineados sobre la misma tcnica de lenguaje, a saber: La manipulacin de valores contenidos en las variables. Una variable es un objeto que se puede describir enteramente y sin ambigedad por su identificador (Nombre de la variable) y su contenido (Valor). Sus caractersticas son: 2.1.1 Su nombre (Identificador) Es una serie de caracteres alfanumricos que denominan a la variable. Es recomendable para el programador dar nombres de variables que tengan relacin con su contenido, para tener as programas ms legibles. Por ejemplo, para el nombre de un individuo, seria pertinente que la variable se llame <nombre>. Para crear el nombre de una variable, se pueden utilizar caracteres del alfabeto o nmeros del cero al nueve. Igualmente, se admite el guin bajo (_) para separar dos nombres en una frase compuesta. El nmero de caracteres admisibles para un identificador es 255, pero se considera que no existen variables que alcancen ese ancho. Son nombres de variables admisibles, los siguientes: Usuario1 = Juan Fecha_nacimiento = #02/05/1969# El resto de caracteres no mencionados, se admiten en los nombres de variables. 2.1.2 Su valor (contenido) El valor de una variable es su contenido en un momento dado, de la ejecucin del programa. Si ste no vara, entonces se estara hablando de una constante. 2.1.3 El tipo El tipo de una variable es definido por el programador en relacin a la naturaleza de la informacin que es susceptible de contener, y las operaciones posibles sobre ella. Algunos lenguajes tienen numerosos tipos predefinidos, pero se distinguen tres tipos bsicos:
3

2.1.4 Numrico Contienen todos los valores del conjunto real (R) y admiten operadores aritmticos, de los cuales los ms comunes son: 2.1.5 Operadores Aritmticos. Operador Denominacin + * / ^ Div % Ent Adicin Sustraccin Producto Cociente Radicacin Divisin entera Resto de la divisin Parte entera

Ejemplo: Variables numericas; precio_unitario, cantidad, nombre ya que precio_unitario = 32000 variable numerica nombre = cote collins variable alfanumrica desicion = admitido/rechazado logica/booleana

2.1.6 Alfanumrico (Cadenas de caracteres) Contiene todos los caracteres (signos) que contiene el alfabeto y los contiene el teclado. Tambin admiten nmeros en combinacin con letras. Admiten los operadores siguientes: Concatenacin Comparacin Extraccin 2.1.7 Concatenacin Es la operacin mediante la cual se unen dos cadenas en una. En numerosos programas se puede tener la necesidad de unir dos cadenas en una sola. Por ejemplo, se puede concatenar el nombre y los apellidos de un individuo.
4

Nombre =memba Apellido = nkomi Sr.||Nombre||Apellido => Sr. memba nkomi 2.1.8 Comparacin Compara los valores de dos variables y el resultado de esta comparacin es un valor lgico. Sus operadores ms frecuentes son: Operador Nombre = Igual que > Mayor que < Menor que Estos son los llamados primarios y pueden combinarse entre si para formar los secundarios. Operador Nombre => Igual o mayor que <= Menor o igual que <> Distinto de Ejemplo: 1341 = 1341 1341 = 1341 a <> a 2.1.9 Lgico (booleano) Este tipo de variable solo puede tomar dos valores en un momento determinado de la ejecucin de un programa, verdadero o falso, TRUE o FALSE, 1 o 0, A o B, que se puede representar mediante: ToF 1o0 AoB Admiten los operadores NOT, AND y OR, llamados operadores lgicos. 3 INSTRUCCIONES ELEMENTALES
5

El apartado precedente ha permitido tener nocin de lo que es una variable. Ahora se trata de poder manipular dicha variable utilizando instrucciones tales como; La afectacin La lectura (entrada) La escritura (salida)

3.1 AFECTACIN. Es la instruccin mediante la cual se asigna un valor a una variable dediante el signo de igualdad (=). Forma general de la afectacin <Identificador> = <valor> Ejemplo: a = 2 Nota: El valor de una variable puede tambin ser otra variable del mismo tipo que el identificador. El de una variable tambin puede ser una constante del mismo tipo que el identificador. El valor de una variable puede ser una expresin cuya evaluacin produce un resultado del mismo tipo que el identificador. Ejemplo: Nota1 = 15 Nota2 = 8 Nota3 = Nota1 Nota = [(nota1 + nota2) + (nota3 * 2)] /4 Ejercicio 1 Sean A, B, C y D las notas del primer trimestre en las materias M1, M2, M3 y M4. De la misma manera X, Y, Z y T son las notas del segundo trimestre, A1, B1, C1 y D1 las notas del tercer trimestre. Calclese: 1. La media respectiva a cada trimestre, media1, media2, y media3 2. Calcula la media anual. Ejercicio 2

Sea C el nombre de una ciudad y P el nombre de un pas, crea un algoritmo que permita la concatenacin de esta dos variables. 3.2 LECTURA. (ENTRADA) Es la instruccin que permite al hombre comunicar u valor a la mquina por mediacin de un perifrico de entrada como el teclado. El procesador se detiene cada vez que se encuentra con una instruccin de entrada en espera de que se comunique el valor. Ejemplo. Leer (pu) Leer (cant) Sin embargo cabe mencionar que esto parece distinto con los lenguajes orientados a objetos, donde predomina el uso de interfaces. La lectura se realiza por medio de algunos controles como el cuadro de texto. El estudio detallado sobre estos conceptos y otros muchos se pueden encontrar en el <<Manual del usuario de Visual Basic>>. 3.3 ESCRITURA. Permite al procesador visualizar la informacin mediante un perifrico de salida, como el monitor. Anote que existe diferentes instrucciones de salida. Escribir (pt) Las instrucciones deben estar correctamente ordenadas respetando una cronologa para formar un algoritmo. //Ejemplo de un algoritmo que calcula el precio total de una mercanca. //programa FACTURACIN const ttca = 0.1 var cnt, pu, pt, tca, anp: num Inicio Leer (cnt) Leer (pu) pt = cnt * pu tca = pt * ttca nap = pt tca escrir (nap) Fin Este algoritmo respeta la estructura de un cdigo en PASCAL, mientras que este curso pretende desembocar en Visual Basic. No obstante lo que se pretende mostrar es como funcionan las instrucciones elementales. Forma general de modulo VB. Sub <Nombre del modulo> As <Tipo>
7

<Declaracin de variables y constantes> <Bloques de instrucciones> <Comentarios> . . . End Sub 3.4 LOS COMENTARIOS. Es necesario a veces introducir comentarios en los programas para poder acordarse del sentido de algunas variables y sentencias, o del por qu de algunas expresiones. Durante la ejecucin del programa el procesador ignora los comentarios. Para representar los comentarios en los algoritmos se emplea doble barra inversa //. Ejercicio 3 1. Escribe un algoritmo que permita concatenar dos cadenas introducidas a travs del teclado. 2. Escribe un algoritmo que al introducir el nombre de un estudiante, su nota de ingls, francs e informtica, calcula su media. 4 LAS ESTRUCTURAS DE CONTROL 4.1 ESTRUCTURAS DE OPCIN CONDICIONAL Ya se ha estudiado las instrucciones bsicas de ordenador, a saber, la afectacin, la lectura y la escritura. Los ejemplos de algoritmos escritos hasta aqu, siguen un cierto orden. Las secuencias hasta ahora no conocen ninguna ruptura, luego el procesador ejecuta todas las instrucciones, de la primera a la ltima. Sin embargo, en el transcurso de un trabajo, ciertas acciones son llevadas a raz de algunas condiciones. Si bien que no se ejecutan si la condicin es falsa. Hablamos, pues, de condiciones Booleanas, que se inclinan hacia una vertiente de entre dos, para tomar una alternativa. Por ejemplo, en la tienda CASA TARBAY el gerente decide aplicar una reduccion del 5% por ciento a toda compra cuyo importe supera los 100000 FCFA. Veamos seguidamente los distintos tipos de estructuras de control existentes: 4.1.1 Opcin Simple La opcin simple ejecuta un bloque de instrucciones bajo su poder si cierta condicion indicada por una expresin se cumple. Su forma general es: Si <condicin> entonces <Bloque de Instrucciones> . . . Fin Si Ejemplo :
8

Leer(pu, cant) Pt = cant * pu Si pt > 100000 entoces Descuento = (pt * 5) / 100 Pt = pt descuento Fin si 4.1.2 Opcin Alternativa Esta estructura es una variante de la anterior. Ofrece dos alternativas de las cuales se ejecutar una, si se cumple la condicin indicada en la expresin, o la otra, si la condicin no se cumple. Su forma general es: Si <condicin> entonces <accion1> Sino <accion2> Finsi Ejemplo El gerente de la CASA TARBAY decide fijar una reduccin del 5% a toda compra de un monto igual o menor que 100.000, y del 10% a toda compra que supere los 100.000 F. El algoritmo es el siguiente: Leer (pu, cant) Pt = pu * cant Si pt <= 100000 entonces Descuento = (pt * 5) / 100 Sino Descuento = (pt * 10) / 100 Fin si Pt = pt descuento 4.1.3 Opcin Mltiple La opcin mltiple presenta varias opciones al usuario de entre las cuales el usuario tiene la posibilidad de elegir una, y en algunos casos, pueden ejecutarse varias opciones. Su forma generar es: Seleccionar caso <variable de opcin> <Caso 1> <accin 1 <Caso 2> <accin 2> . . . <Caso n> <accin n>
9

<Caso contrario> <accin c> Fin selecciona Ejemplo Se entran tres nmeros A, B, C por el teclado, de los cuales se desea; sea la adicin, el producto o la media. Escribir (escribe los tres numeros) Leer(A, B, C) Escribir (haz tu eleccion) Leer (eleccion) Seleccionar caso eleccion Caso eleccion = 1 S = A + B + C Escribir (la suma es || S) Caso eleccion = 2 P = A * B * C Escribir (el producto es || P) Caso eleccion = 3 M = (A + B + C) / 3 Escribir (La media es || M) Fin seleccionar 4.1.4 Imbricacin de opciones Es posible que una estructura de control este dentro de otra. Eso supones que la primera condicin esta sumisa a una segunda condicin, para que ciertas acciones sean llevadas a cabo. Sea un matrimonio, en el cual ciertas condiciones son requeridas para su celebracin. Casamiento imposible, entre un chico con menos de 21 aos y una chica con menos de 16 aos. Leer(sexo, edad) Si sexo = m entonces Si edad < 21 entonces Escribir (matrimonio imposible) Sino Escribir (matrimonio posible) Fin si Sino Si edad < 16 entonces Escribir (matrimonio imposible) Sino Escribir (matrimonio posible) Fin si Fin si Ejercicio 4
10

1. Escribe un algoritmo que determine si un nmero introducido por el teclado es divisible por 7. 2. Crea el algoritmo de la resolucin de una ecuacin de 2 grado, del tipo AX + BX + C = 0, sabiendo que: Si a=0 b=0 c=0 entonces S=R Si a=0 b=0 c0 entonces S=0 Si a=0 b0 entonces n=-C/B Si a0 entonces Calculo de = B - 4ac Si < 0 no hay soluciones Si = 0 X1 = X2 = -b/2 Si > 0 4.2 Estructuras repetitivas Permiten la ejecucin reiterada de una accin bajo la verificacin de una condicin, hasta que esta se cumple o deje de cumplirse, deteniendo as el tratamiento. Son de varios tipos, y su forma general es; Hacer..hasta que. Se les conoce generalmente con el nombre de BUCLE. Hacer Sentencia 1 Sentencia 2 . . . Sentencia n Hasta que <condicin de paro> La condicin de comprueba al final del bucle, ya que las instrucciones se ejecutan al menos una vez. Por ejemplo, se quiere visualizar en todo momento un men en la pantalla, hasta que el usuario realice una eleccin. Otra forma de las estructuras de repeticin es la mientras que .. fin mientras que. Mientras que <condicin>

11

Bloque de sentencias . . . Fin mientras que Sea un algoritmo que permite introducir matrculas de vehculos salientes de un taller, durante una jornada. Podemos imaginar una condicin de paro de registro que el usuario tecleara al final de jornada. Para empezar, y como en cualquier programa, declaramos las variables y las inicializamos, cada una con su tipo, y acto seguido, se desarrolla la estructura de repeticin. contador = 0 matricula = mientras que matrcula <> fin hacer escribir(Teclea matricula) leer (matricula) si matricula <>fin entonces contador = contador + 1 fin si fin mientras que escribir(El ltimo nmero de vehculo es : || contador) Ejercicio 5 Se introduce una serie de enteros relativos mediante el teclado, de los cuales el ltimo es el cero. Escribe un algoritmo que contabilice; el nmero de enteros positivos, el nmero de enteros negativos; que sume los enteros positivos y sume los enteros negativos; que totalice en nmero de enteros ledos sin incluir el cero, y visualice el resultado en la pantalla por categoras.

12

Anda mungkin juga menyukai