Pseudocodigo



  • Hola que tal, me podrían dar una mano o darme consejos para que lo logre entender de una vez? yo recientemente estoy comenzando a estudiar programación, estoy viendo algoritmos, y no entiendo NADA, me cuesta mucho… estoy resolviendo problemas con pseudocódigo
    alguien me puede explicar para tratar de entender porque QUIERO APRENDER!!,

    Muchas gracias gente espero su colaboración!!



  • **No entendí que es lo no entendes, ¿que es el pseudocodigo?

    El pseudocodigo es escribir tu algoritmo con palabras tuyas o informales pero respetando ciertas estructuras.

    Decime que onda, seguro te puedo dar una mano**



  • Lo que tenés que tener en mente es lo siguiente:
    Un algoritmo es una receta, si lo querés ver así. En esa receta vos decís qué, cómo hacerlo y cuándo hacer algo. Todo eso que digas es para resolver un problema. Ahora bien, cuando vos programás, tenés que plantear cómo resolver el problema pero desde el lado de la computadora.
    Por ejemplo, querés hacer un programa que te pida dos números enteros y te muestre en pantalla el resultado, el algoritmo podría ser algo como:

    1- Pedir dos números enteros
    2- Sumarlos
    3- Mostrar el resultado

    El pseudocódigo, es la expresión de un algoritmo de manera "intermedia", no coloquial, si no formal:

    numero1 = valor_ingresado_1
    numero2 = valor_ingresado_2
    resultado = numero1 + numero2
    mostrar resultado
    
    ```Entonces yo eso lo puedo pasar a cualquier lenguaje, por ejemplo, Python:
    
    

    numero1 = input('Ingrese un numero: ')
    numero2 = input('Ingrese otro numero: ')
    resultado = numero1 + numero2
    print(resultado)
    input() #[color]al pasar de pseudocódigo a un lenguaje, hay que tener en cuenta la forma de trabajo del mismo. Esta última línea ingresada (que no está en el pseudo o en el algoritmo) es necesaria ya que el programa se cerraría y no daría tiempo a leer en pantalla.[/color]

    
    La implementación del pseudocódigo en otro lenguaje, como C++, cambiaría a algo similar a esto:
    
    

    #include <stdio.h>
    int main(void) {
    int numero1, numero2, resultado;
    std::cout << "Ingrese un número: ";
    std::cin >> numero1;
    std::cout << "Ingrese otro número: ";
    std::cin >> numero2;
    resultado = numero1 + numero2;
    std::cout << resultado;
    std::cin.get();
    }</stdio.h>

    Se que si estás empezando quizás no hayas entendido nada o poco, pero bueno, preguntá si es necesario
    
    Un abrazo, espero haberte ayudado en algo.


  • Me enrosca mucho aplicar las estructuras, no se cuando va una y cuando va otra



  • Hablás de estructuras en C?
    Si sos un poco mas específico te doy una mano con gusto, algún ejemplo de algo concreto que no entiendas, una situación, algo. Estoy medio en el aire, no logro comprender en dónde tenés el problema ni a raíz de qué 😛



  • En el pseudocodigo (si me podes explicar desde el principio porque aplicas cada paso te lo agrederia), la estructura para, mientras, y el repetir. por ejemplo estos ejercicios:

    • Hacer un programa que solicite que se ingresen una cantidad N de datos enteros. El programa debe solicitar que se ingrese la cantidad de datos y luego c/u de esos datos. Determinar y mostrar el promedio de los valores que sean positivos, el porcentaje de los valores que sean negativos del total y la cantidad de ceros.

    ~

    • Solicitar que se ingrese una cantidad N de valores reales. Determinar y mostrar el mayor valor ingresado y la posicion en que ingresó, tambien el menor valor ingresado y su posicion. Suponer que son valores unicos

    PD: Estos dos son los ultimos problemas que me dieron.



  • @Never.:

    En el pseudocodigo (si me podes explicar desde el principio porque aplicas cada paso te lo agrederia), la estructura para, mientras, y el repetir. por ejemplo estos ejercicios:

    • Hacer un programa que solicite que se ingresen una cantidad N de datos enteros. El programa debe solicitar que se ingrese la cantidad de datos y luego c/u de esos datos. Determinar y mostrar el promedio de los valores que sean positivos, el porcentaje de los valores que sean negativos del total y la cantidad de ceros.

    ~

    • Solicitar que se ingrese una cantidad N de valores reales. Determinar y mostrar el mayor valor ingresado y la posicion en que ingresó, tambien el menor valor ingresado y su posicion. Suponer que son valores unicos

    PD: Estos dos son los ultimos problemas que me dieron.

    Pero ahí ya te están pidiendo un programa, hacer un programa implica que uses un lenguaje de programación, no un algoritmo ni pseudocódigo. Te piden algún lenguaje en particular?
    También te pediría que te expreses un poco mejor, cuando decís "la estructura para, mientras, y el repetir" no entiendo si estás queriendo decir "la estructura para mientras repetir" o si hablás de algo como un bucle for, while, etc hablando desde pseudocódigo.
    Si querés hago el pseudo para ambos y te lo implemento en un programa lo mas simple posible en Python y C, avisame, no tengo problema.

    –EDIT--
    Te lo hice así rápido el algoritmo, y te lo implementé en Python (lo mas básico y legible, sin entrar en detalles particulares del lenguaje en si). Si no entendés avisame que te hago un video explicándolo, quizás te resulte mas ameno que leer.

    Algoritmo (pasarlo a pseudo sería expresar de una manera mas formal, lo evité para no entrar luego en explicaciones del lenguaje, desconozco si sabés algo de programación). Te lo "disuelvo" para ir parte por parte del primer problema: http://pastebin.com/9PDD18FZ (lo subo en pastebin porque es mejor la visualización que subiéndolo acá)
    Ahora bien, el programa lo bajé (de la manera mas fiel posible, si tuviese que hacerlo en serio sería muy diferente) a Python3, que me pareció lo mas entendible en caso de que no supieras nada y tuvieses que rebuscártela para entender: http://pastebin.com/vrL6DqwC
    Pero como ya te dije, cualquier cosa, te hago un video paso por paso.

    Abrazo.



  • Nono yo lo tengo que hacer en pseudocodigo a ese problema, todavia no me explicaron ningun lenguaje, todo en pseudo estoy viendo!

    PD: Cuando digo la estructura para, mientras y repetir quiero decir que no se cuando aplicar cada una en el pseudo, no sé si va la estructura mientras o la estructura para o la estructura repetir!

    Si vos podes hacerme un video te lo re contra agradeceria! Igual muchas gracias por tu buena onda hasta ahora! 🙂



  • @Never.:

    Nono yo lo tengo que hacer en pseudocodigo a ese problema, todavia no me explicaron ningun lenguaje, todo en pseudo estoy viendo!

    PD: Cuando digo la estructura para, mientras y repetir quiero decir que no se cuando aplicar cada una en el pseudo, no sé si va la estructura mientras o la estructura para o la estructura repetir!

    Si vos podes hacerme un video te lo re contra agradeceria! Igual muchas gracias por tu buena onda hasta ahora! 🙂

    Las tenés que aplicar cuando la manera de accionar que implica cada una, te permita ayudar a resolver el problema en cuestión. Si vos tenés una acción que se realiza cierta cantidad de veces y de la misma manera, entonces deberías "repetir esas acciones". Si vos querés algo que se realice mientras una condición se cumpla, usás "mientras"
    Si a vos te dicen que pidas 5 números, la acción básica es "pedir número". Entonces, si necesitás pedir cinco números, usás "repetir". Repetís cinco veces "pedir número".
    Dame un toque que estoy terminando algo, si pierdo la constancia me voy a perder y estoy bastante confundido. En un ratito lo hago y te aviso por MP, edito este mensaje y te agrego el video.



  • Che me colgué con lo que estaba haciendo, se me hace tarde para hacer el video, muero de sueño. Te lo hice en pseudo, de la manera mas "formal" y "computadorísticamente humana" que se me ocurrió, te lo dejo en pbin http://pastebin.com/4EsGSXdV

    Mañana si seguís con dudas te hago el video, muero.



  • **El "for" hace algo una determinada cantidad de veces.

    Supone que tengo una variable x, que es igual a 0, x = 0. Le quiero sumar 1, 5 veces.
    Entonces el programa seria:

    "Hacer por 5 veces: x = x+1"

    Cuando se ejecuta:
    INICIO // valor de x = 0
    x=x+1 // x = 0+1 = 1
    x=x+1 // x = 1+1 = 2
    x=x+1 // x = 2+1 = 3
    x=x+1 // x = 3+1 = 4
    x=x+1 // x = 4+1 = 5
    FIN


    El "while" hace algo mientras que la condicion se cumple.

    Ahora tengo x = 0 otra vez y quiero que se le sume 1 a x mientras que su valor sea menor a 3.
    Entonces:

    "Mientras x es menor a 3: x = x+1"

    Cuando se ejecuta:
    INICIO // valor de x = 0
    x=x+1 // 0 < 3 => x = 0+1 = 1
    x=x+1 // 1 < 3 => x = 1+1 = 2
    x=x+1 // 2 < 3 => x = 2+1 = 3
    x=x+1 // 3 no es menor a 3 entonces termina el ciclo while y el valor de x sigue siendo 3.
    FIN

    (la condicion se verifica antes de seguir sumando)


    Si no lo entendiste tendrias que usar un lenguaje de programacion y hacer un programa para probar como funciona…**



  • ***** Hacer un programa que solicite que se ingresen una cantidad N de datos enteros. El programa debe solicitar que se ingrese la cantidad de datos y luego c/u de esos datos. Determinar y mostrar el promedio de los valores que sean positivos, el porcentaje de los valores que sean negativos del total y la cantidad de ceros.

    1. "Ingresar cantidad de numeros a cargar"
    2. Cantidad = Num. // Num representa el numero que ingresa el usuario.
    3. Contador = 0, Positivos = 0, Negativos = 0, valor = 0, ceros = 0
    4. Mientras Contador <= Cantidad
    ---4.1 "Ingresar Valor"
    ---4.2 Valor = Num
    ------4.3 Segun Caso Valor
    ---------4.3.1 Caso Valor > 0
    –------------4.3.2 Positivos = Positivos + Valor
    ---------4.3.3 Caso valor = 0
    --------------4.3.4 Ceros = Ceros + 1
    ---------4.3.5 Caso Valor < 0
    –------------4.3.6 Negativos = Negativos + 1
    ------4.4 FinSegun
    ------4.5 Contador = Contador +1
    5. Repetir

    6. "Cantidad de ceros": Imprimir ceros.
    7. "Porcentaje negativos": Imprimir (negativos / cantidad) * 100
    8. "Promedio positivos": Imprimir Positivos / (cantidad - ceros - negativos)
    9. Fin

    No me deja acomodar bien el pseudocodigo el foro, perdón pero tuve que poner los guionsitos.****



  • Bueno, es logico que no sepas cuando usar cada estructura si recien estas empezando a ver todo esto.
    El consejo que doy siempre a la gente que esta comenzando, es que traten de verlo como lo que es realmente, pensar un problema y resolverlo en castellano.

    Por ejemplo vamos a revisar tu primer enunciado:

    Hacer un programa que solicite que se ingresen una cantidad N de datos enteros. El programa debe solicitar que se ingrese la cantidad de datos y luego c/u de esos datos. Determinar y mostrar el promedio de los valores que sean positivos, el porcentaje de los valores que sean negativos del total y la cantidad de ceros.

    Si prestamos atencion, quiere decir que primero va a pedir la cantidad de numeros que luego se van a ingresar (el valor N) y luego se solicitaria esa cantidad de numeros enteros.
    Una vez ingresados todos los numeros, se calcularia el promedio de los valores que sean positivos, es decir que durante tu proceso tenes que ir diferenciando los numeros que ingresan y son positivos, por otro lado cual es el porcentaje de los negativos y ademas la cantidad de numeros 0 ingresados.

    Hay que ir releyendo varias veces el enunciado mientras vas haciendo el pseudocodigo para no perderte ningun detalle.
    Dependiendo de cada profesor, la forma de escribir el pseudocodigo puede variar apenas, pero realmente la idea es siempre la misma. Inicialmente nos quedaria algo asi:

    Solicitar cantidad de enteros a cargar
    PARA CADA numero HACER
    	Ingresar numero entero
    FIN PARA
    
    

    Hasta el momento, el sistema nos pregunta cuantos numeros vamos a cargar y despues nos pide que ingresemos uno por uno. Logicamente no se cumple el objetivo, asi que hay que seguir agregando cosas.

    VAR SumaPositivos
    VAR CantidadPositivos
    VAR PromedioPositivos
    Iniciar SumaPositivos en 0
    Iniciar CantidadPositivos en 0
    Solicitar cantidad de enteros a cargar
    PARA CADA numero HACER
    	Ingresar numero entero
    	SI numero > 0 ENTONCES
    		CantidadPositivos = CantidadPositivos + 1
    		SumaPositivos = SumaPositivos + numero
    	FIN SI
    FIN PARA
    Poner PromedioPositivos = SumaPositivos / CantidadPositivos
    Mostrar PromedioPositivos
    
    

    Con este agregado entonces tenemos, que vamos a ir sumando los numeros positivos, y a la vez contando cuantos hay, para luego poder mostrar el promedio. Entonces, para cada numero que solicitamos, vamos a preguntar si es mayor a 0 (es decir, es positivo) en caso de que esto sea correcto, vamos a incrementar en 1 la cantidad de positivos y vamos a sumar el valor del numero a una variable acumuladora (en la cual se van a ir sumando todos los numeros positivos)

    Vamos a frenar aca, y hacer una "prueba de escritorio" (asi se llama a probar con ejemplos reales el sistema que estes realizando)

    Prueba de escritorio:
    Iniciamos las VAR SumaPositivos y VAR CantidadPositivos ambas en 0
    El sistema me pide que le diga cuantos numeros voy a ingresar, vamos a poner 5 por ejemplo.
    Para el primer numero me pide la carga, y le inserto un "4". Este numero es mayor que 0? Si, entonces CantidadPositivos se incrementa a 1 (es el primer positivo que encontramos) y SumaPositivos va a ser 4, ya que al estar en 0 inicialmente nos quedaria (0 + 4)
    Como todavia no cargamos todos, el sistema nos sigue pidiendo enteros.
    En segundo lugar ingresamos un "-7". Este numero es mayor que 0? No, entonces no incrementamos la cantidad ni acumulamos el valor. CantidadPositivos sigue siendo 1 y SumaPositivos sigue siendo 4.
    En tercer lugar ingresamos un "6". Es mayor que 0? Si, entonces tenemos ahora 2 en CantidadPositivos y 10 en SumaPositivos (4 de antes + 6 de ahora).
    En cuarto lugar ingresamos un 0. Es mayor que 0? No, entonces no incrementamos.
    Por ultimo, ingresamos un -3. Como tampoco es mayor que 0 no hacemos nada.
    Calculamos el promedio de positivos dividiendo la suma por la cantidad (10 / 2) y nos da 5 que es lo que se muestra al final.

    Esto fue un ejemplo tomando una parte de tu enunciado, logicamente falta decir el porcentaje de negativos y la cantidad de 0.

    Te lo dejo para que lo resuelvas vos, pero te lo dejo facil… para calcular el porcentaje de negativos tenes que contar la cantidad de negativos y compararla con el total de numeros ingresados. En la prueba de escritorio que yo te di, se ingresaron 2 negativos de 5 numeros totales, es decir un 40% es el resultado de negativos (2 / 5 * 100)
    Y la cantidad de 0 ingresadas es facil, se ingreso uno solo, es solo ir contandolos cuando aparecen.

    Te dejo los puntitos suspensivos donde te falta agregar las variables necesarias para lograr terminar el ejercicio y en la parte del pseudocodigo que tenes que desarrollar.

    VAR SumaPositivos
    VAR CantidadPositivos
    VAR PromedioPositivos
    ........
    Iniciar SumaPositivos en 0
    Iniciar CantidadPositivos en 0
    Solicitar cantidad de enteros a cargar
    PARA CADA numero HACER
    	Ingresar numero entero
    	SI numero > 0 ENTONCES
    		CantidadPositivos = CantidadPositivos + 1
    		SumaPositivos = SumaPositivos + numero
    	FIN SI
    	........
    FIN PARA
    Poner PromedioPositivos = SumaPositivos / CantidadPositivos
    Mostrar PromedioPositivos
    
    

    Cualquier duda consulta, igualmente trata de resolverlo solo, porque en el parcial no vamos a estar, veni a preguntar dudas realmente despues de probar por tu cuenta, creeme que te va a servir a vos hacerlo.


Log in to reply