0% encontró este documento útil (0 votos)
27 vistas56 páginas

Principios de Progarmación

Descargar como pdf o txt
Descargar como pdf o txt
Descargar como pdf o txt
Está en la página 1/ 56

Universidad Técnica Nacional

Ingeniería del Software


Principios de Programación -
ISW-111
Metodología de
programación
Agenda

1. Introducción al ciclo de desarrollo de un programa.


2. Identificación del problema.
3. Análisis y descomposición del problema (entradas, proceso y salidas).
4. Herramientas básicas para el desarrollo de programas.
5. Funciones integradas (pow, sqrt).
6. Conversión de expresiones aritméticas a expresiones algorítmicas.
7. Diseño de algoritmos secuenciales.
● Ciclo de procesamiento de datos

Todo proceso en el mundo real consiste en tomar uno o más datos de entrada aplicar un
conjunto de instrucciones, operaciones, ordenamientos, cálculos, etc, para generar un
resultado o información de salida.
Dato: conjunto de valores o hechos individuales, que funcionan
como insumos para un proceso. Se puede definir también como
la unidad mínima de información.

Proceso: conjunto de operaciones o instrucciones necesarias


para convertir datos en información significativa.

Información: conjunto organizado de datos procesados que


cuentan con significado relevante.
● Ciclo de procesamiento de datos

Un ejemplo de procesamiento datos es la preparación de una Pizza, para lo cual es


necesario contar con un conjunto de ingredientes (entrada) se debe aplicar un conjunto
de acciones para la preparación (proceso) y finalmente obtener la pizza lista para
comer (salida). A continuación la descripción detallada:
● Ciclo de procesamiento de datos

Pasos a seguir para el procesamiento de datos

1. Entender el
problema

4. Tener claro
2. Identificar las
el resultado
entradas
esperado

3. Tener claro
las operaciones
a utilizar
Algoritmo

• Un algoritmo es una secuencia de pasos ordenados, con un principio y un


fin determinado que sirve para resolver un problema.

• Tiene un conjunto de entradas, las cuales serán procesadas durante la


ejecución de los pasos, para obtener las salidas esperadas
Programas computacionales

Para que las computadoras puedan funcionar requieren de programas que contengan las
instrucciones para realizar las distintas tareas automáticas. Sistemas operativos como
Windows o Linux, navegadores de internet Explorer o Chrome, procesadores de palabras,
hojas electrónicas, etc, son algunos ejemplos de programas, a continuación se mencionan
los principales conceptos relacionados con la programación de computadoras.
Principales conceptos

Algoritmo: es el conjunto de instrucciones que especifican la secuencia de


operaciones a realizar para resolver algún problema específico. En otras
palabras, un algoritmo es una fórmula para resolver un problema.

Programa: implementación de un algoritmo utilizando un lenguaje de


programación especializado que contiene el conjunto de instrucciones que
debe seguir un computador para resolver una problema específico.
Principales conceptos

•Pseudocódigo: Lenguaje cercano a un lenguaje de programación que


sirve para definir las acciones o instrucciones que se ejecutan en un
algoritmo. Una vez escrito un algoritmo mediante un pseudocódigo, éste
será fácil de trasladar a cualquier lenguaje de programación, también
conocido como el “Software” del computador.
Principales conceptos

•Lenguaje de Programación: representa un lenguaje formal diseñado para


crear programas de cómputo, está formado por un conjunto de reglas
sintácticas y semánticas que definen una estructura para controlar el
comportamiento físico y lógico de un computador.

•Es importante indicar que hoy en día existe una gama diversa de lenguajes
de programación en diferentes paradigmas de programación, que se
adaptan a las necesidades de cada entorno, la elección dependerá de la
necesidad a la que va dirigida la solución final o bien de la preferencia del
propio programador.
Principales conceptos

Paradigma de Programación: Un paradigma de programación representa un


enfoque particular o filosofía para diseñar soluciones. Los paradigmas difieren
unos de otros, en los conceptos y la forma de abstraer los elementos
involucrados en un problema, así como en los pasos que integran su solución
del problema. Ejemplo. Orientado a Objetos
Fases del análisis del problema
Fases del análisis del problema

• Identificación del problema: se identifica la necesidad, ¿qué se plantea resolver?, tener


claro el panorama de lo que se requiere es quizás el punto más importante, si el programador
no entiende lo que se le plantea no puede lograr una correcta implementación de la solución.

• Análisis del problema: se analizan e identifican los datos de entrada, las operaciones o
cálculos necesarios para encontrar la solución del problema y se precisan cuáles son los datos
esperados como resultado del proceso realizado.
Fases del análisis del problema

•Durante el análisis puede plantearse las siguientes preguntas:


• Entradas
– ¿Cuáles son los datos de entrada?
– ¿Cuántos datos se introducirán?
– ¿Cuántos son datos de entrada válidos?
•Cálculos u operaciones a realizar
– ¿Cuáles son los cálculos a realizar?
– ¿Cómo se calculan?
– ¿En qué orden deben ejecutarse los cálculos?
– ¿Qué condiciones existen para la ejecución de los cálculos?
• Resultados o Salidas
– ¿Cuáles son los datos de salida?
– ¿Cuántos datos de salida se producirán?
– ¿Qué formato y precisión tendrán los resultados?
Fases del análisis del problema

• Diseño del Algoritmo: se toma lo identificado en el análisis y se especifican las tareas más
importantes para resolver del problema y se disponen en el orden en el que deben ser
ejecutadas, para la escritura es necesario considerar que el algoritmo debe ser:

– Preciso: Escrito de manera ordena y correcta para la solución del problema.


– Consistente: Si el algoritmo se ejecuta múltiples veces con los mismos datos se debe
obtener el mismo resultado.
– Finito: durante la ejecución el algoritmo debe terminar en algún momento.
Fases del análisis del problema

• Implementación del Algoritmo: Una vez el algoritmo está diseñado se escribe el algoritmo
mediante pseudocódigo, considerando las entradas, proceso y salida definidas en el análisis.

• Verificación del Algoritmo: Finalmente se debe verificar que la ejecución del mismo sea
correcta El modo más normal de comprobar un algoritmo es mediante su ejecución manual,
usando datos significativos que abarquen todo el posible rango de valores y anotando en una
hoja de papel las modificaciones que se den estos datos y en los del resto del algoritmo, en las
diferentes fases hasta la obtención de los resultados
Estructura básica de programación

•Variable: representa el nombre de la celda de memoria RAM que toma valores


específicos en determinados momentos y cuyo valor puede cambiar durante la
ejecución de un algoritmo.

•Toda variable se identifica por un nombre y un tipo


Nomenclatura

•Un identificador se forma con una secuencia de letras (minúsculas de la a a la z;


mayúsculas de la A a la Z; y dígitos del 0 al 9).
•El carácter guion bajo “_” puede utilizarse siempre y cuando no sea al inicio o al final
del nombre.
•Un identificador no puede contener espacios en blanco, ni otros caracteres distintos
de los citados, como por ejemplo (*,;.:-+, etc.).
•El primer carácter de un identificador debe ser siempre una letra minúscula, no puede
ser un dígito.
•La longitud máxima del nombre de una variable es de 20 caracteres.
•Se hace distinción entre letras mayúsculas y minúsculas. Así, Masa es considerado
como un identificador distinto de masa y de MASA.
•Se considera buena práctica escribir los nombres de los identificadores siempre en
minúscula y cuando el nombre está formado por dos o más palabras, escribir la
primera letra de cada palabra siguiente en mayúscula. Ejemplos: carnet,
nombreEstudiante o cantEstudiantesNuevos.
Definición del tipo de variable

Las variables almacenan datos de diferente naturaleza los tipos básicos o simples que
se encuentran en la mayoría de los lenguajes de programación son:
Tipos de variables

Variables Numéricas: Son las que almacenan datos con valores numéricos ya sean del
tipo entero o real. Los contenidos de estas variables pueden ser utilizados para ejecutar
operaciones aritméticas.

• Variables numéricas enteras (int): Contienen números negativos o positivos que no


tienen decimales. También son llamados de punto fijo. El identificador para denotar
un tipo entero es int escrito en minúscula.
Ejemplos: 13 7 -6 -298 35 34 -1000

• Variables numéricas de punto flotante (float): Son las que contienen datos que
presentan siempre un punto decimal, también pueden ser positivos o negativos. El
identificador para denotar un tipo punto flotante es float escrito en minúscula. Ejemplos:
23.8 -6752 5.0 -12.00 75.80
Tipo de variables

• Variables Alfanuméricas: Los datos no numéricos, también pueden ser manipulados por el
computador. Las variable alfanuméricas son aquellas que contendrán datos compuestos por
caracteres alfanuméricos, es decir dígitos, letras y caracteres especiales. Con el contenido de
estas variables no se puede realizar cálculos matemáticos, aunque su contenido sea de dígitos
numéricos.
Variables

Variables tipo cadena o Hilera (String): Un dato tipo cadena es una secuencia de caracteres (es
decir, letras, dígitos y caracteres especiales) encerrados entre comillas dobles. Pueden utilizarse
tanto letras mayúsculas como minúsculas. El identificador para denotar un tipo hilera es String
escrito con la primera letra mayúscula y el resto en minúscula.
Ejemplos: “ROJO” “ALAJUELA, APDO. 1040” “1-600-07413-0”
“ftp@cuna.ac.cr” “Juan Pérez”

Variables tipo caracter (char): Una variable tipo carácter puede almacenar un valor que representa
un único carácter, este puede ser una letra, un número, o un carácter especial. Los valores de los
datos tipo carácter deben ser encerrados entre comillas simples. El identificador para denotar un tipo
hilera es char escrito en minúscula
Ejemplos: ‘A’ ‘1’ ‘x’
Variables

Variables Booleanas (boolean): Son las variables que contienen datos que únicamente
pueden tomar uno de dos valores permitidos: cierto (true) o falso (false) . Se utilizan para
representar la alternativa (si / no) a determinadas condiciones. El identificador para denotar
un tipo hilera es boolean escrito en minúscula.
Declaración y asignación de variables

<Tipo> <nombreVariable1>, <nombreVariable2>, ... ;

Se establece que pueden definirse una o más variables del mismo tipo en una
línea y finaliza con punto y coma.

Ejemplos:
int velocidad;
float media, sumaTotal;
String nombre, apellido; ´
Asignación de valores a las variables

• Al ejecutar los algoritmos es necesario asignar valores a las variables para poder ir ejecutando
los pasos que nos permitan resolver el problema y obtener las salidas esperadas. La operación
de asignación se utiliza para especificar que una variable toma un valor dado.
• La operación de asignación se utiliza para especificar que una variable toma un valor dado.
Asignación de valores a las variables

La operación de asignación se denota con el símbolo =.


La forma general de un enunciado de asignación es:

nombreVariable = expresión;

Donde la expresión puede ser una constante, una variable, o una expresión
aritmética más compleja. Cuando la computadora encuentra un enunciado de
asignación, evalúa la expresión que se encuentra a la derecha del símbolo de
asignación (=) y asigna el valor resultante a la variable que se encuentra a la
izquierda de dicho símbolo.
Asignación de valores a las variables

Las variables pueden asignarse cuando se definen o bien posterior a su definición, ejemplo:

float salario = 876987.56;


o bien,
float salario;
salario = 876987.56;
Asignación de valores a las variables

Existen 3 formas básicas de asignar valores a una variable:


1. Asignando a una variable un valor constante o literal.
Ejemplos:

a= 3 (a es de tipo int)
nombre = “Juan” (Nombre es de tipo String)
sexo = ‘F’ (sexo es de tipo char)
resultado = true (Resultado es de tipo boolean)
Asignación de valores a las variables

2. Asignando a una variable el contenido de otra variable, una variable puede


obtener el valor de otra por medio de un enunciado de asignación:

Ejemplo 1: Si x, y, a son variables de tipo int y se realiza la siguiente


secuencia de instrucciones

x = 0 (la variable x contiene el valor 0)


a = 4 (la variable a toma el valor de 4)
x = a (ahora la variable x toma el valor de 4 y pierde el valor
anterior)
Asignación de valores a las variables

Ejemplo 2: Si tanto a como b son variables de tipo String tenga en cuenta


lo siguiente:

a = “Hola” (a la variable a se le asigna la hilera Hola)

b = a (a la variable b se le asigna el valor que contiene la variable a,


es decir contiene Hola)

b = “a” (a la variable b se le asigna el carácter ‘a’) Note que en este


caso la a está entre comillas, por lo tanto no se refiere al contenido de la
variable a sino al carácter ‘a’.
Asignación de valores a las variables

3. Asignando a una variable el resultado de una expresión.

Ejemplo: Si x, a y b son variables de tipo float, la siguiente


instrucción asignará el resultado de la operación la variable x:

x = a + b
Reglas para asignación de valores

• Las asignaciones de valores a variables siempre se realizan de derecha a izquierda, es


decir el contenido de la variable o resultado de la expresión que aparece a la derecha del
signo =, se asigna a la variable que aparece a la izquierda.
• La variable receptora pierde el valor anterior para contener el valor asignado.
• La variable que pasa el valor a la variable receptora permanece con su valor inicial, es
decir por asignar su contenido a otra variable, ésta no pierde el dato que tenía
almacenado.
• A una variable definida de un tipo, solo se le pueden asignar valores de ese mismo tipo o
compatible, de lo contrario se producirá un error.
• Cuando se realiza la operación de asignación a una variable, ésta pierde el valor anterior y
se reemplaza por el nuevo valor asignado.
Valores constantes

Representan un tipo de variable que mantiene el valor fijo durante toda la ejecución del
programa, la sintaxis es la siguiente.

final <Tipo> <NOMBRE> = <valor>;

Como puede observarse en las constantes están definidas con el enunciado final seguido
del tipo y el nombre en mayúscula.
Ejemplo: final float PORCENTAJE_SEGURO=0.09;
Las constantes se deben usar cuando: La referencia a cierto valor por un nombre
descriptivo puede mejorar la claridad del programa. Las constantes facilitan la actualización
de un programa si, en una fecha posterior se ha de cambiar el valor de cierta cantidad.
Mezcla de valores enteros con flotantes

• Mezclar enteros con flotantes en un enunciado de asignación únicamente es válido cuando


la variable del lado izquierdo es flotante, es decir:
• No es válido asignar a una variable de tipo entero una expresión que contiene cualquier
valor fraccionario o variable de tipo flotante.
• Se permite asignar a una variable de tipo flotante una expresión o valor entero. Esto
debido a que la celda de memoria donde se almacena una variable de tipo flotante tiene
espacio para guardar una variable de tipo entero, pero la celda diseñada para guardar una
variable entera no tiene espacio para guardar los decimales.
Expresiones
Aritméticas
Expresiones Aritméticas

• Son las expresiones que involucran operandos numéricos con operadores aritméticos y
funciones matemáticas.
• Son combinaciones de constantes, variables, símbolos de operación, paréntesis y
nombres de funciones especiales.

Ejemplo: a = c + (b - 3) / c
Operadores Aritméticas

Operador Descripción
+ Suma
- Resta
* Multiplicación
/ División
% División
Residual
Operadores Aritméticas

Observaciones sobre los operadores aritméticos:

• Si el resultado de una división de dos valores enteros se almacena en otra variable entera, este
resultado no contendrá decimales.
• Nota: Si el resultado de una división se almacena en una variable flotante, el contenido poseerá
decimales.
• El (%) Da el residuo de la división del primer operando entre el segundo. Ambos operandos
deben ser de tipo int.

Ejemplo: Si x es una variable entera, en la expresión x = 9 % 4. la x se le asignará el valor de 1


Funciones Interconstruidas

• Son funciones que ya se encuentra predefinidas en los lenguajes de programación, para efectos
de esta guía se definen los siguientes:
• sqrt(x ), retorna el valor de la raíz cuadrada de x donde x no puede ser negativo
• pow (x,y ) x elevado a la potencia y.
Conversión de Expresiones Aritméticas a
Expresiones Algorítmicas

Aritmética Algorítmica
x = ab x=a*b
x = 3x + y x=3*x+y
x = 6 4 x=6/4
x = 32 x = pow(3,2)
x = 54 + 25 x = sqrt(54) + 25
Conversión de Expresiones Aritméticas a
Expresiones Algorítmicas

Las operaciones que están entre paréntesis ( ) , se evalúan primero. Si existen paréntesis
anidados, las expresiones más internas se evalúan primero.
Dentro de una expresión, los operadores aritméticos, siguen el siguiente orden de prioridad.
Prioridad 1: *, /, % Multiplicación, división
Prioridad 2: +, - Suma y resta.
Si en una expresión no hay paréntesis y hay dos operadores de la misma prioridad,
entonces la prioridad se determina de izquierda a derecha, es decir se ejecuta primero el
operador de la izquierda.
Ejemplo reglas de prioridad

Ejemplo de evaluación de una expresión aritmética tomando en cuenta las


prioridades de los operadores. Asuma que la variable ‘y’ es entera.
Expresión aritmética: y = ( (2 + 4 * 2) - 5 * (3 - 5)) / 4
Secuencia de evaluación:
y = ( (2 + 8) - 5 * (3 - 5) ) / 4
y = ( (10) - 5 * (3 - 5) ) / 4
y = ( 10 - 5 * (3 - 5) ) / 4
y = ( 10 - 5 * (-2) ) / 4
y = ( 10 - 5 * -2 ) / 4
y = ( 10 - -10 ) / 4
y = (20) / 4
y = 20 / 4
y=5
Escritura de Algoritmos
con Pseudocódigo
Lenguaje Pseudocódigo

Como se ha mencionado la representación de un algoritmo se hace mediante un lenguaje


de especificación o pseudocódigo, el cuál debe ser independiente de cualquier lenguaje de
programación particular, pero fácilmente traducible a cada uno de ellos.

Sintaxis de un Lenguaje de Programación o


pseudocódigo: se define como el conjunto de reglas
que deben seguirse al escribir el código fuente de los
programas para considerarse como correctos.
Escritura básica del algoritmo

void <nombreAlgorimo> (<Tipo> <nombreEntrada1>,


<Tipo> <nombreEntrada2>, ...)
{
<Declaración de Variables>
<Expresiones>
<Salidas>
}
Escritura básica del algoritmo

• void: nombre fijo reservado escrito en minúscula. (no retorna)


• <nombreAlgorimo>: Se sustituye por el nombre que se defina para el algoritmo, este nombre
debe ser representativo a la operación que realiza y las reglas de nomenclatura aplican las
mismas definidas en el apartado “Reglas de Nomenclatura de Variables”.
• ( ): los valores entre los paréntesis representan los valores de entrada del algoritmo que puede
haber uno o más de uno o ninguno, en cuyo caso se debe colocar paréntesis abierto y cerrado
sin ningún contenido. Las entradas se especifican con la misma nomenclatura y tipo de las
variables.
• { }: representan el inicio y fin del algoritmo.
Escritura básica del algoritmo

• <Declaración de Variables>: en esta sección se definen las variables requeridas para el


algoritmo, las reglas de sintaxis para la creación de las variables ya vistas anteriormente.
• <Expresiones>: se definen las expresiones y lógica de código necesarias para resolver el
algoritmo.
• <Salidas>: representa la sintaxis necesaria para generar las salidas o resultados del algoritmo.
La sintaxis para definir una salida a pantalla es la siguiente:

System.out.print(“<Texto a imprimir>” + <nombreVariable>);


Ejemplos de algoritmo

1. Algoritmo que recibe como entrada 2 números enteros a y b y calcula e imprime la suma de
ambos números.
Entradas: a
b
Salidas: suma de a y b
void sumar(int a, int b)
{
int suma;
suma = a+ b;
System.out.print( “La suma de los números es “ + suma);
}
Ejemplos de algoritmo

2. Algoritmo que recibe como entrada el largo y ancho de un terreno rectangular y calcula e
imprime su perímetro y área.
Entradas: largo, ancho
Salidas: perímetro, área
void medidasTerreno(float largo, float ancho)
{
float area,perimetro;
perimetro = 2* (largo + ancho);
area = largo * ancho;
System.out.print( “El perímetro del terreno es “ + perimetro + “ y el área es “ + area);
}
Ejemplo 1: Ejecución del algoritmo

Ejecución en la memoria del computador del algoritmo que calcula el área


y perímetro:
Ejemplo 2: Ejecución del algoritmo

Ejecución en la memoria del computador del algoritmo que calcula el


área y perímetro:
Ejemplos de algoritmo

3. Algoritmo que lee el nombre, el salario por hora y las horas trabajadas en la
semana por un trabajador. Calcula e imprime su nombre junto a su salario neto
semanal, sabiendo que la deducción del Seguro Social es del 9% sobre el salario
bruto(total).
– Definición de entradas: nombre
salarioHora
horasTrabajadas
– Definición de salidas: nombre
– salarioNeto

Premisas para llegar de las entradas a las salidas: el descuento de la CCSS es


de 9%
Algoritmo Calcula Salario

void calculaSalario(String nombre, float salarioHora, float horasTrabajadas)


{
float salarioBruto,salarioNeto,montoSeguro;
salarioBruto=salarioHora*horasTrabajadas;
montoSeguro=salarioBruto*0.09;
salarioNeto=salarioBruto-montoSeguro;
System.out.print(“El salario neto de “ + nombre + ” es ” + salarioNeto);
}
Ejecución de algoritmo Calcula Salario
¡Consultas!

También podría gustarte