Algoritmos y Diagramas de Flujo En           

Aprendiz de

Programación

Misma persona con 2 años de experiencia

Ser programador

es fácil

Woow ya aprendí

a hacer un if 

soy un crack

Pseudocódigo

Diagrama de Flujo

Código

Algoritmos y Diagramas de Flujo

Temario

  • Conceptos Básicos pt1 (Algoritmos, diagramas, programas, etc)
  • Conceptos Básicos pt2 (Tipos de datos, Operadores)
  • Estructuras Algoritmícas Selectivas (if, if-else, switch)
  • Estructuras Algoritmícas Repetitivas (for, while, do-while)
  • Arreglos
  • Funciones
  • ....

@youdevs

Suscríbete, Sígueme, Ámame!

Conceptos Básicos pt1

  • ¿Qué es un Algoritmo?
  • Características de los algoritmos
  • Diagramas de Flujo
  • ¿Qué es un Programa?

Conceptos Básicos pt2

  • Tipos de Datos
  • Variables
  • Constantes
  • Identificadores
  • Operadores
    • Aritméticos

Tipos de Datos

Los datos que procesa una computadora están clasificados en simples (primitivos) y estructurados (compuestos)

 

Dentro del grupo de los tipos de datos simples se encuentran:

  • Números enteros (int)
  • Números decimales (float)
  • Caracteres (char): símbolos del abecedario, números o símbolos especiales
  • Booleanos: Valores de verdad
int: -8, 0, 8

float: -9.99, 0.00, 9.999

char: 'X', '*', '-'

bool: true, false

Simples

String: 'YouDevs_111'

Arrays: ['Colección', 'de', 'datos', 9, 10.00, 'X'];

Estructurados

Variables

Sirven para almacenar datos, ya sean simples o estructurados.

El valor contenido en una variable puede cambiar durante la ejecución de un programa.

Constantes

El valor del dato que se le asigna a una constante no puede variar durante la ejecución del programa.

Identificadores

Los datos se almacenan en casillas de memoria o celdas de memoria de la computadora, a estas celdas se les asigna un nombre para reconocerlas.

Operadores

Nos permiten hacer operaciones🙄

Distinguimos entre operadores aritméticos, relacionales y lógicos.

Ejemplo Nombre Resultado
$a + $b Adición (Suma) Suma de $a y $b.
$a - $b Sustracción (Resta) Diferencia de $a y $b.
$a * $b Multiplicación Producto de $a y $b.
$a / $b División Cociente de $a y $b.
$a % $b Módulo Resto de $a dividido por $b.
$a ** $b Exponenciación / Potencia Resultado de elevar $a a la potencia $bésima.

Operadores Aritméticos

Ejemplo Operación Resultado
$x = 'y' == 'd';  Igual a
$x = 'y' != 'd';  Diferente de
$x = 7 < 8; Menor que
$x = 7 > 8; Mayor que
$x = 7 <= 8; Menor o igual que
$x = 8 >= 8; Mayor o igual que
$x = '8' === 8; Idéntico

Operadores Relacionales

También conocidos como Operadores de Comporación: se utilizan para comparar dos valores y producen un resultado booleano.

Ejercicio Operadores Relacionales

1. Define las siguientes variables en un archivo .php

<?php

$a = 10;

$b = 20;

$c = 10;

$d = 15.5;

$e = "10";

$f = "Hello";

$a == $c;
$a != $b;
$a > $b;
$a < $b;
$b >= $d;
$b <= $d;
$a === $e;
$a == $e;
$f != 'Hello';
$f == 'hello';

2. Descrubre por ti mismo los resultados de las operaciones relacionales

3. Imprime los resultados

en pantalla usando var_dump()

Operador Operación Ejemplo Resultado
! Negación (not) $x = !(7 > 15) ;

 
&& (and) Conjunción $x = (35 > 20) && (20 <= 23);

 
|| (or) Disyunción $x = (35 > 20) || (20 <= 18);

 

Operadores Lógicos

Permiten formular condiciones complejas a partir de condiciones simples, son de conjunción (&&), disyunción (||) y negación (!)

Ejercicio Operadores Lógicos

1. Resuelve las siguientes expresiones

<?php

$x = !(8 > 12);

$x = (50 > 25) && (25 != 30);

$x = (100 == '100') && (100 === '100');

$x = !(0 === 0);

$x = (20<=20) ∣∣ (15>30);

$x = ("Hello" != "World") ∣∣ ("Hello" == "hello" );

$x = !(5 != 5);


2. Imprime los resultados en un archivo .php con var_dump()

Entorno de Desarrollo

Es Hora de Realizar nuestro Primer diagrama, pero antes....

Entrada / Salida De Datos

Por medio de dispositivos E/S podemos interactuar con la computadora.

 

  • Los dispositivos de entrada nos permiten ingresar datos a procesar en el sistema.

 

  • Los dispositivos de salida nos permiten ver el resultado del procesamiento de los datos.
Dispositivos de Entrada
Dispositivos de Salida

Pseudocódigo

es una forma de escribir la lógica de un programa utilizando una mezcla de lenguaje natural y elementos de programación.

Cosas a tener en cuenta para escribir pseudocódigo:

  • Claridad y Simplicidad

  • Estructura Similar a la Programación
  • Descripciones Detalladas
  • Indentación y Formato
  • Sin Sintaxis Específica

Realiza el Pseudocódigo

Ejercicio 1: Escribir Pseudocódigo

Escribe un pseudocódigo que, al recibir los datos A, B, C y D que representan números enteros, los muestre en orden inverso.

Instrucciones:

  1. Define cuatro variables A, B, C y D para almacenar los números enteros.
  2. Lee los valores de estas variables.
  3. Escribe las instrucciones necesarias para mostrar los valores en orden inverso.

Realiza el Diagrama

Ejercicio 2: Construir el Diagrama de Flujo

Construye el diagrama de flujo que describa gráficamente el pseudocódigo del Ejercicio 1.

Instrucciones:

  1. Utiliza los símbolos de diagrama de flujo estándar para representar las operaciones del pseudocódigo.
  2. Asegúrate de incluir los pasos de lectura de datos y la salida en orden inverso.
  3. Organiza el diagrama de manera que sea claro y fácil de seguir.

Realiza el Programa

Ejercicio 3: Escribir el Programa

Escribe un programa en lenguaje PHP que realice la misma tarea del diagrama de flujo del Ejercicio 2.

Instrucciones:

  1. Copiale al profe

Resultados

<?php

echo "Enter integer A: ";
$A = intval(fgets(STDIN));

echo "Enter integer B: ";
$B = intval(fgets(STDIN));

echo "Enter integer C: ";
$C = intval(fgets(STDIN));

echo "Enter integer D: ";
$D = intval(fgets(STDIN));

echo "Los valores en orden inverso son:\n";
echo "D: $D\n";
echo "C: $C\n";
echo "B: $B\n";
echo "A: $A\n";
INICIO
    LEER A
    LEER B
    LEER C
    LEER D
    IMPRIMIR D
    IMPRIMIR C
    IMPRIMIR B
    IMPRIMIR A
FIN

Ejercicios Prácticos

con Operadores Aritméticos

Ejercicio 1: Calculadora de Área y Perímetro de un Rectángulo

Crea un programa que solicite al usuario el ancho y el alto de un rectángulo y luego calcule y muestre el área y el perímetro del rectángulo.

 

Fórmulas:

area = ancho * alto

perimetro = 2 * (ancho + alto)

Ejercicio 2: Conversión de Unidades de Tiempo

Crea un programa que solicite al usuario una cantidad de días y luego convierta esa cantidad a horas, minutos y segundos.

 

Fórmulas:

horas = dias * 24

minutos = dias * 24 * 60

segundos = dias * 24 * 60 * 60

Ejercicio 3: Calculadora de Promedio de Calificaciones

Crea un programa que solicite al usuario cinco calificaciones y luego calcule y muestre el promedio de esas calificaciones.

 

 

Fórmulas:

suma = cal1 + cal2 + cal3 + ...

promedio = suma / 5

Realiza los siguientes ejercicios

Conversión de Temperatura

Descripción:

Crea un programa que solicite al usuario una temperatura en grados Celsius y la convierta a grados Fahrenheit.

Fórmula:

  • Fahrenheit = (Celsius * 9/5) + 32

Cálculo del Volumen de un Cubo

Descripción:

Crea un programa que solicite al usuario la longitud de un lado de un cubo y luego calcule y muestre el volumen del cubo utilizando el operador de potencia: **

Fórmula:

  • Volumen = lado^3

Cálculo de Descuento

Descripción:

Crea un programa que solicite al usuario el precio original de un producto y el porcentaje de descuento. Luego, calcula y muestra el precio final después de aplicar el descuento.

Estructuras de Control

Estructura Bloque de código o conjunto de instrucciones organizadas que se ejecutan de manera ordenada para resolver un problema o realizar una tarea especifica.

Programación Estructurada Es un aradigma de programación que se basa en dividir un programa en bloques lógicos. Se centra en usar estructuras de control

Estructuras de Control Permiten controlar o modificar el orden o flujo en el que se ejcutan las instrucciones de programa.

Estructuras de Control:

  • Secuencia
  • Selectiva o lógica
  • Repetitiva (bucle) o iterativa

Estructura Selectiva If

Esta estructura permite que el flujo del diagrama/programa siga por un camino específico si se cumple una o más condiciones dadas.

Si (<Condicion>) {
	<Operación>;
}

// Continua el flujo del programa
SI <condicion> ENTONCES
	Hacer Operacion

... continua el flujo del programa

Ejercicio con Estructura: if

Determinar si un Número es Postivo

Descripción:

Crea un programa que solicite al usuario un número. El programa debe verificar si el número ingresado es positivo y, en caso verdadero, mostrar el siguiente mensaje: 'El número ingresado es positivo.'

Estructura Selectiva if - else

Permite ejecutar acciones especificas en ambos sentidos (verdadero/falso).

if () {
	// Acciones en verdadero
} else {
	// Acciones en falso	
}

// ... continua el flujo del programa

Sintaxis

Ejercicio con Estructura: if-else

Determinar si un Número es Postivo o Negatiovo

Descripción:

Crea un programa que solicite al usuario un número. El programa debe verificar si el número ingresado es positivo y, en caso verdadero, mostrar el siguiente mensaje: 'El número ingresado es positivo.' Y en caso negativo Mostrar el siguiente mensaje: 'El número ingresado No es Positivo'.

Estructura: if - else if - else

if ($num > 0) {
    // código if
} elseif ($num < 0) {
    // código elseif
} else {
    // código else
}

// Flujo normal...

Permite evaluar más de una condición.

Sintaxis

Ejercicio con Estructura: if- else if- else

Determinar si un Número es Postivo o Negatiovo

Descripción:

Crea un programa que solicite al usuario un número. El programa debe verificar si el número ingresado es positivo, negativo o cero y mostrar un mensaje correspondiente a cada caso.

Anidamiento de Estructuras Condicionales

if (condicion) {
    
    if(condicion) {
    	// codigo del if anidado
    }
    else {
    	// codigo del else anidado
    }
} elseif (condicion) {
    if(condicion) {
    	// codigo del if anidado
    }
} else {
    if(condicion) {
    	// codigo del if anidado
    }
}

// Flujo normal...

Las estructuras condicionales anidadas son una técnica de programación en la que se coloca una estructura condicional (como if, else if, o else) dentro de otra. Esto permite crear una lógica más compleja y manejar múltiples condiciones de manera organizada.

Ejemplo

Ejercicio: Anidamiento

Determinar si un Número es Postivo, Negativo o Mayor a 100

Descripción:

Crea un programa que solicite al usuario un número. El programa debe verificar si el número ingresado es positivo, negativo o cero, y mostrar un mensaje correspondiente a cada caso. Si el número es positivo, además debe indicar si es mayor o menor que 100.

Ejercicio Práctico

Estructuras de Selección

Ejercicio: Bono para Empleados Basado en Cumplimiento de KPIs y Sueldo

Crea un programa que calcule el bono del sueldo de un empleado que ocupa el puesto de programador, según su sueldo y si cumplió con sus KPIs. Las reglas son las siguientes:

  1. Si el sueldo es mayor o igual a 1000, se debe mostrar el mensaje "Cantidad NO aceptada" y no se aplica ningún bono.
  2. Si el sueldo está entre 500 y 999 (inclusive), y el empleado cumplió con los KPIs (opción 1), entonces se aplica un bono del 10%. Si no cumplió con los KPIs (opción 0), no se aplica bono y se muestra el sueldo original.
  3. Si el sueldo está entre 300 y 499 (inclusive), y el empleado cumplió con los KPIs (opción 1), entonces se aplica un bono del 20%. Si no cumplió con los KPIs (opción 0), no se aplica bono y se muestra el sueldo original.
  4. Si el sueldo es menor a 300, se muestra el mensaje "Bono no disponible para este rango de sueldo", y no se aplica ningún bono.

El programa debe solicitar el sueldo del empleado y si cumplió con sus KPIs (1 para sí, 0 para no), y luego calcular el bono (si aplica) y mostrar el sueldo final.

Estructura de Selección Múltiple

Permiten tomar decisiones entre varios caminos posibles en función del valor de una variable o una expresión.

Estructuras de Selección Múltiple en PHP:

  • switch: Es un clásico en programación, y nos permite evaluar una expresión y ejecutar un bloque de código en función del valor que coincida

 

  • match: Introducido en PHP 8, match es la versión mejorada y más moderna de switch. Es más limpio y más seguro, especialmente cuando se trata de devolver valores, ya que devuelve el resultado directamente.
$dia = 3;

switch ($dia) {
    case 1:
        echo "Hoy es lunes.";
        break;
    case 2:
        echo "Hoy es martes.";
        break;
    case 3:
        echo "Hoy es miércoles.";
        break;
    default:
        echo "Día no válido.";
}

Ejemplo con switch:

$dia = 3;

$resultado = match ($dia) {
    1 => "Hoy es lunes.",
    2 => "Hoy es martes.",
    3 => "Hoy es miércoles.",
    default => "Día no válido.",
};

echo $resultado;

Ejemplo con match:

Ejercicio: Estructura de selección Múltiple

Plan de Entretenimiento Semanal

Descripción: Crea un programa que solicite al usuario el día de la semana (en número del 1 al 7) y muestre un plan de entretenimiento para cada día. Utilizaremos match para hacerlo más moderno.

  • 1 (lunes): "Hoy es día de ver una serie nueva en Netflix."
  • 2 (martes): "Martes de lectura: ¡toma tu libro favorito!"
  • 3 (miércoles): "Miércoles de cine: ¡una buena película nunca falla!"
  • 4 (jueves): "Jueves de juegos de mesa."
  • 5 (viernes): "Viernes de karaoke: ¡a cantar se ha dicho!"
  • 6 (sábado): "Sábado de paseo al aire libre."
  • 7 (domingo): "Domingo de descanso y pizza."

Si el usuario ingresa un número fuera del rango del 1 al 7, debe mostrar "Día no válido".

Estructuras Repetitivas

Nos permiten repetir un conjunto de instrucciones un número definido o indefinido de veces, dependiendo de si sabemos cuántas veces queremos que se ejecute o si queremos que se siga ejecutando hasta que se cumpla una condición.

Conceptos Básicos:

Hay varios tipos de ciclos en la mayoría de los lenguajes de programación:​

  • for
  • while
  • do-while
for (inicialización; condición; actualización) {
    // Código a ejecutar en cada iteración
}

Bucle for:

Ejercicio: Cuenta Monedas y Ahorra

Descripción: Imagínate que eres un niño ahorrando monedas en una alcancía y cada día decides si ahorras una moneda o no dependiendo de una condición.

 

  • Escribe un programa que te ayude a ahorrar monedas durante 7 días. En cada iteración (es decir, cada día).
  • El programa te preguntará si quieres agregar una moneda a la alcancía.
  • Si la respuesta es "sí", sumaremos 1 a la cantidad de monedas. Si la respuesta es "no", no agregaremos ninguna moneda.
  • Al final de los 7 días, el programa te dirá cuántas monedas lograste ahorrar durante la semana

Made with Slides.com