Estás en: Inicio >> Foros >> Informática >> Programación
Programación /

Necesito AYUDA-ALGORITMOS!

Participa en el tema Necesito AYUDA-ALGORITMOS! en el foro Programación.
NECESITO ENTREGAR UN PARCIAL Y NO ENTIENDO MUCHO YA QUE ESTOY ESTUDIANDO A DISTANCIA Y ...

Buscar en este tema:
1 2 >
 
  •  
    #1 Necesito AYUDA-ALGORITMOS!
    NECESITO ENTREGAR UN PARCIAL Y NO ENTIENDO MUCHO YA QUE ESTOY ESTUDIANDO A DISTANCIA Y RECIEN EMPIEZO...

    LES DEJO LOS PROBLEMAS..

    1)Una fábrica de remeras de algodón vende su único producto a $ 15 por unidad y tiene un conjunto de criterios de descuentos a sus clientes. Estos criterios son:
    -Si se compra hasta 10 (inclusive) remeras, no se realiza descuento.
    -Si se compra más de 10 y menos de 20 remeras se realiza un 10% de descuento.
    -Si se compra 20 ó más de 20 y hasta 29 remeras se realiza un 15% de descuento.
    -Si se compra 30 ó más de 30 y hasta 49 remeras se realiza un 20% de descuento.
    -Si se compra 50 ó más remeras se realiza un descuento de 30%.
    Se pide desarrollar un algoritmo en el que se lea una cantidad de remeras a comprar y se muestre el total a pagar por el cliente según los criterios descritos para los descuentos otorgados.

    2. En un club barrial se realizan elecciones a presidente y sólo se presentan tres candidatos A, B y C. El padrón electoral consta de 10000 socios en condiciones de votar. Diseñe un algoritmo que muestre el nombre y la cantidad de votos obtenidos por cada candidato, así como también la cantidad de votos de los que no votaron a ninguno de los tres postulantes (votos anulados, impugnados ó en blanco).
    Editado por bosterita18 - 19.05.2009 23:40 hs.
    +
     
    0
    Me gusta
     
    | Más
  • #2 Re: Necesito AYUDA-ALGORITMOS!

    Todos estarían dispuestos a ayudarte, pero no de esa manera. Nadie va a hacer el parcial por vos.
    Intenta realizarlo y anda preguntando sobre los problemas concretos se te presenten, de esa forma vas a aprender, sino no tiene sentido...
    Me gusta este mensaje
  • #3 Re: Necesito AYUDA-ALGORITMOS!

    Bueno mas alla de este ejercicio que te explico el compañero te sugiero que visite esta pagina

    http://www.frro.utn.edu.ar/catedras/...o=26&materia=3

    Es la pagina de algoritmos y estructuras de datos de la UTN de Rosario. Ahí tenes los apuntes de la Ing. Zorribas que son muy claros. La practica de Estructuras de Control - Datos Simples con los ejercicios resueltos. La practica de Arreglos (vectores y matrices) con los ejercicios resueltos. Y la practica de Subprogramas (funciones y procedimientos) con los ejercicios resueltos.
    Con eso te sobra para aprobar el año.
    Me gusta este mensaje
  • #4 Re: Necesito AYUDA-ALGORITMOS!


    Suena mas a la segunda clase de programacion I, mas que a TP de parcial, pero en fin.

    Vamos a repasar algunos conceptos, basicos de programacion.
    Diagramas de flojo


    Hay mas elementos en los diagramas de flujo, pero con estos nos sobra.

    PLANTIEMOS EL PROBLEMA:

    1º reelevar todos los Datos e Incognitas.
    Datos:
    Originalmente publicado por bosterita18 Ver mensaje
    Una fábrica de remeras de algodón vende su único producto a $ 15 por unidad y tiene un conjunto de criterios de descuentos a sus clientes
    Creo que el dato importante se entendio, pero por si las dudas es que es "15$ la unidad"

    Originalmente publicado por bosterita18 Ver mensaje
    a)-Si se compra hasta 10 (inclusive) remeras, no se realiza descuento.
    b)-Si se compra más de 10 y menos de 20 remeras se realiza un 10% de descuento.
    c)-Si se compra 20 ó más de 20 y hasta 29 remeras se realiza un 15% de descuento.
    d)-Si se compra 30 ó más de 30 y hasta 49 remeras se realiza un 20% de descuento.
    e)-Si se compra 50 ó más remeras se realiza un descuento de 30%.
    Código:
    (ACLARACION): A > B ( > quiere decir que A es MAYOR que B ) | A > B ( > quiere decir que A es MENOR que B ) 
    Por ende, > quiere decir Mayor y < quiere decir Menor

    Esto, para pasarlo en limpio nos queda que:
    Código:
    a)
    forma 1:[Mas eficiente]
    Unidades < 11 ---------------{ Descuento = 0 } 
    forma 2:
    Unidades <= 11 ---------------{ Descuento = 0 } 
    //Ambas son CORRECTAS, y AMBAS muy buenas y validas, pero como tenemos VARIAS    condiciones. Si es que esta no se cumple, entonces recomiendo la 1, aunque la 2 tambien funcionara. pero nos complicara el codigo, ( Un poquito, en realidad cambia en una tonteria )
     
    b)
    Unidades > 10 Y Unidades < 20  ---------------{ Descuento = 10% } 
     
    c)
    Unidades >= 20 Y Unidades < 30  ---------------{ Descuento = 15% } 
     
    d)
     Unidades >= 30 Y Unidades < 50  ---------------{ Descuento = 20% } 
     
    e)
    Unidades >= 50  ---------------{ Descuento = 10% }  
    Bueno, ya hemos, desenglosado el texto, y ahora sabemos los Datos fijos del planteo.

    Antes de seguir.
    Ejemplo.

    30 remeras. ¿Cuanto descuento tiene? -------------- 20%,(d).
    No te confundas con al "C". porque la se es solo los mayores a 20 o Iguales y MENORES a 30.
    30 no es MENOR a 30 por lo tanto NO CUMPLE, con la CONDICION..

    Como veras "condicion". es Nuestra palabra magica, para este planteo.

    Sigamos:

    Ahora que tenemos, los datos, necesitamos saber que Vamos a Buscar conseguir x medio de ellos.
    O al menos "tratar", Lo digo, puesto que algunas veces, en la "vida real", los clientes saben lo QUE NO QUIEREN, pero no saben lo que quieren, Pero CREEN que si lo saben, Y esto genera un problema al hacer Analisis de Sistemas. Te lo comento como anecdota de mis experiencias.

    Sin embargo, descuida, que en universidades y escuelas, los ejemplos que te den, JAMAS, pueden ser complicados, como para que se genere ese problema.

    Las Incognitas;

    Originalmente publicado por bosterita18 Ver mensaje
    Se pide desarrollar un algoritmo en el que se lea una cantidad de remeras a comprar y se muestre el total a pagar por el cliente según los criterios descritos para los descuentos otorgados
    Referimos a CRITERIOS, como los DATOS FIJOS, que nos proveyo el enunciado.

    Debemos, Primero Pedir LA CANTIDAD de REMERAS A COMPRAR.

    Eso lo haremos mostrando un mensaje que salga, por la Pantalla pidiendo la Cantidad de remeras a comprar.

    Debemos recordar como cosa basica de la Programacion que, tenemos VARIABLES:
    que son CONTENEDORAS de "DATOS" que pueden VARIAR. De alli, su nombre de variable

    Ahora, Damos un ejemplo de Variable.

    Pepe123
    JuanCho1
    ID_USUARIO
    Password_Nuevo.
    Etc...

    Las variables pueden Adoptar todo tipo de nombres, Exeptuando a TODASe aquellas que comiensen con NUMEROS, y con SIMBOLOS ESPECIALES [ ! # @ · $ % & ]
    En algunos Lenguajes, ALGUNOS, son validos, Pero aca no hablamos de Lenguajes de programacion, sino de ALGORITMOS que luego aplicaremos en algun lenguaje, entonces. Evitemos usar cosas PROPIAS de los Lenguajes.

    ¿ Como una variable ?
    Ej;
    Código:
    ID_USUARIO = "Stefano" 
    Cuando yo quiera Usar ID_USARIO, para la MAQUNA, va a ser lo MISMO que decir "Stefano".
    Código:
    Password_Nuevo = "casa123" 
    Cuando yo quiera usar Password_Nuevo la Maquina lo va a tomar como si Fuera "casa123" y "Ignora" por ahi asi decirlo, el Nombre de la Variable. Ya que lo que le Importa es el VALOR que esta Guardado dentro de Ella

    Recordemos que con el "=" (simbolo igual), guardamos Valores dentro de las Variables.

    Tambien Podemos ASIGNAR VARIABLES, dentro de otras variables VARIABLES.

    Pepe123 = "Stefano"
    ID_USUARIO = Pepe123

    //Conclusion: ID_USUARIO para la MAQUINA en realidad es "Stefano", puesto que Pepe123, Valie y Vale, "Stefano", pero ADEMAS ahora ese valor se lo CARGUE/ASIGNE a ID_USUARIO

    (ACLARACION! esto es ASIGNAR , NO ES GUARDAR una variable dentro de Otra:
    El guardar una Variable dentro de otra, es OTRA COSA, la cual se llama "arreglos" o mejor conocido como "Array's" que no vamos a ver, puesto que el problema no lo necesita en este caso puntualmente.


    Volviendo al tema...
    Volviendo al Problema puntualmente, tenemos DATOS FIJOS que nos Dicen Cuales son las cosas que podemos Hacer y las Incongnitas que nos dcen QUE debemos hacer.

    Asi que comencemos:
    Pidamosle al Usuario la Cantidad de remeras.



    Aqui Hemos pedido la Cantidad de remeras por pantalla y las Hemos CARGADO dentro de la VARIABLE ---------- CANT_REMERAS ( Se pudo haber usado CANT_REM, pero queria ser explicito )

    Por lo general, es bueno Usar Nombres de Variables, que hagan referencia a su tipo de contenido.
    Como por Ejemplo

    Código:
    NOMBRE_ID = "Stefano Bertiuax".
    NUM_DNI = "33.***.847"
    CANT_DINERO = "$2.000.000.000" 
    Etc, Como veras el NOMBRE DE LA VARIABLE; hace REFERENCIA a su tipo de contenido.
    Esto es Idoneo, puesto que cuando ya seas programadora, vas a darte cuenta que Esto es esencial, puesto que usamos tantas variable en programas REALES y complejos que Nos mareamos solos

    Ahora procedemos a Usar los Criterios para Cobrarle las remeras al Cliente.
    DIJIMOS que los CRITERIOS SON CONDICIONES.
    Y para las condiciones usabamos la "casita".
    (ACLARACION!): En algunos Libros Y manuales Puede Aparecer como UN ROMBO.
    Pero es simplemente una simbologia abastracta, no cambia en nada, ya que el dibujo solo es para INTERPRETACION, yo uso la casita puesto que me parece mas "idonea" para "empesar".

    ANTES QUE NADA, VAMOS Q TOMAR COMO QUE EL USUARIO, NO VA A INGRESAR NUMEROS NEGATIVOS.

    a)-Si se compra hasta 10 (inclusive) remeras, no se realiza descuento

    Dijimos que la podiamo interpretar como
    SI Unidades < 11 ENTONCES { Descuento = 0 } :
    En nuestro ejemplo
    SI CANT_REMERAS < 11 ENTONCES { Descuento = 0 } :



    Como sabemos que debemos hacer un descuento, y que ese Descuente puede VARIAR, entonces usaremos una .... Si adivinaste, una VARIABLE: que en este caso la llame Descuento

    En donde voy a guardar el % que le voy a hacer de descuento.

    Ahora. Criterio/Condicion B

    Unidades > 10 Y Unidades < 20 ---------------{ Descuento = 10% }

    Osea, en nuestro programa :
    SI CANT_REMERAS > 10 Y CANT_REMERAS < 20 ENTONCES { Descuento = 10% }

    //Pensemos un segundo

    Necesito saber si ingreso Algun Numero > a 10 o < a 20, es decir { 11,12,13,14,15,16,17,18,19 }.

    Necesitaria chequer los que Ya Chequie en el Criterio A, pero como tenemos EL BLOQUE "FALSO", Libre podemos decir

    Si lo que Ingreso el Usuario, Sea lo que sea, es Menor a 11 es decir { 1,2,3,4,5,6,7,8,9,10 }.
    Si, el valor ingeresado no esta en ese caso, Y Ademas Yo Supongo que NO ME INGRESAN numeros Negativos, La unica opcion que me queda es del 11 para adelante { 11,12,13, ..... Infinito }.

    O' casualidad, que En la Condicion B Caben todos esos Numeros que Pasaran por el BLOQUE FALSO.

    entonces Para que quede mas claro.



    Ahora, Bien. ¿Por que puse como condicion solo "< 20"?.
    No se suponia que era > 10 Y < 20 ?.

    -Si, es verdad. Pero como plantie antes, Con la condicion A, Si "esquiva" el BLOQUE VERDADERO en la Condicion A, quiere decir que el numero que ingreso no es { 1,2,3,4,5,6,7,8,9,10 }.
    Entonces, SI yo para LLegar a la condicion B, necesito pasar por el bloque A, y Ademas LLego al Bloque B, Solo si los numeros NO SON { 1,2,3,4,5,6,7,8,9,10 }.
    Es tonto tratar de chequear, algo que ya lo chequie, puesto que seria "redundar".

    Ej: Ingreso el usuario "17"

    17, Es Menor a 11 ? NO, Por ende No es ninguno entre 1 y 10, Entonces ¿cuales son los POSIBLES NUMEROS? - { 11,12,13, ..... Infinito }.

    Entonces, como la condicion no da un RESULTADO VERDADERO, voy al BLOQUE FALSO.

    AH ... En el bloque FALSO hago otra Condicion APENAS se carga.
    ¿cual es la condicion? que sean > a 10 y < 20.
    Mmmmmm.... Pero yo acabo de deducir que el valor no es { 1,2,3,4,5,6,7,8,9,10 }. Entonces, ¿Para que pregunto si es MAYOR A 10 ?, Si es Obvio que no es Ninguno de los Menores a 11, Entonces, por lo que sera Inecesario Preguntarlo.
    Poder, se puede, pero es gastar energias en váno.

    Condicion "C"
    Unidades >= 20 Y Unidades < 30 ---------------{ Descuento = 15% }

    Bueno la logica es la misma que debimos impartir para el punto 2

    Ya por haber pasado por los 2(A Y B) pasos anteriores, sabemos que el valor Debe No va a ser un valor entre { 1,2,3,4,5,6,7,8,9,10 11,12,13,14,15,16,17,18,19 }. .
    Entonces el criterio es facil. solo debe ser < 30 ( menor a 30 ) , puesto que si no es { 1,2,3,4,5,6,7,8,9,10 11,12,13,14,15,16,17,18,19 }. , solo puede ser { 20,21,22,etc... infinito)
    Entonces, es inecesario preguntar si es menor a 20, puesto que los 2 pasos anteriores, ya lo han hecho.

    Por ende, el Diagrama queda asi.



    Bueno, como veras en realidad esto, es una cuestion mas de logica,que de algun otra cosa.
    En general la programacion, tambien es cuestion de logica, puesto que yo por ejemplo, eh creado software de ejecucion de cuentas, control y gestion de cuentas y informes de gestion de la calidad y tesoreria.
    Por lo cual uno podria llegar a deducir, que yo me conosco las ISO de memoria, y que seguramente tambien tengo bastos conocimientos en Contaduria.
    Aunque eso es falso, puesto que lo unico que yo pedi, son las formulas concretas de gestion de cuentas y las normas ISO, las necesitan estandares como formularios y procedimientos que modelen "COMO" "HACES" la calidad, entonces para eso tube otros colaboradores con los que hicismos analisis de sistemas, de como interactuaban los distintos departamentos y luego coordinamos para crear una red fisica en la empresa y los formularios los hicimos digitales y los gestionamos con MS SQL Server.
    pero A fin de cuentas, posiblemente, si Bastante sobre ISO y Contaduria, aprendi, porque, "empapandote" sobre ciertos, temas uno, no puede evitar tomarse un segundo para tratar de razonarlos y entenderlos, Aunque es obvio que un Contador Publico, la tiene mas "clara" que yo.


    Ahora A continuacion muestro el diagrama completo con los otros siguientes pasas,
    Los pasos que tome aqui, son los mismos, revise cuales eran los "parametros" ya chequeados y solo generaba "condiciones", para verificar que los que "ya estaba verificado" coincida con la Condicion,
    asi como Hicimos del Paso A al B y del B al C. [ Re-mirarlo un poco no vendria mal ]


    Como te daras cuenta, segui la misma logica de siempre, en le paso D, me fije que todos los valores sean < a 50 , pùesto que para llegar a este bloque "D", era necesario que el valor sea un numero entre 30 hasta infinito ( positivo obviamente )
    Entonces,
    Encontramos luego con caso que es para destacar, hasta ahora veniamos poniendo "IF", es decir Condiciones en el BLOQUE FALSO, puesto que si no se cumplia la condicion, queriamos verificar el resto de las condiciones.
    Ahora sucede que nos dice que si es MAYOR a 50 entonces, el descuento es de 30%

    Bueno, si el numero ingresado, no esta entre 30 y 50, y tampoco era menor que 30, puesto que eso lo verifico el bloque A;B;C. entonces lo unico que me queda por DECIR, es que el numero es entre 51 e Infinito.
    Entonces directamente, ni me molesto. pongo [ CONDICION = 30 ]

    Bueno, hasta aca llegamos, Con las "CONDICIONES"/"IF"

    Ahora que ya sabemos el descuento que le tenemos que hacer al cliente.
    Es obvio que tenemos que hacerle el descuento, porque con saber cuanto le descontamos, no es suficiente, ya que si no le descontamos lo que sabemos que le tenemos que descontar, el Cliente no nos va a mirar con cara de Buenos Amigos .

    Como ya aprendimos, para un valor que puede variar, usamos Variables y Ademas a esas variables, les ponemos Nombre que representen o tengan algo referente a lo que voy a ponerle a dentro a esa variable.

    Ahora, un concepto Nuevo:
    RECICLAR VARIABLES, yo si uso por ejemplo la variable DESCUENTO, y guardo el % a descontarle.
    para que voy a crear por ejemplo DESCUENTO_DINERO, si puedo Usar la Misma Variable DESCUENTO, total, si a fin de cuenta no me pìde saber cuanto es el %, que tengo que descontarle.
    Solo me pide que le haga el descuento, no que lo muestre o que lo guarde o almacene.
    Obviamente cuando Pongamos el "VALOR" del descuento el %, se pierde, pero como dijimos una vez usado ya no me sirve, asi que si se pierde, A mi o a Vos (a ti), no nos importa.

    Vamos a las Tintas Claras

    ¿ Como hago el descuento ?
    es el Precio * el % , divido 100: Aqui tenemos Lo que le vamos a descontar.
    Entonces al precio le RESTAMOS ese DESCUENTO.En donde el precio va a ser el Precio (15$) x la cantidad de remeras (CANT_REMERAS)
    como dijimos el precio es un CONSTANTE ( 15 $ ), entonces como JAMAS, va a variar, no usamos una variable.
    Ademas dijimos que vamos a reciclar la variable DESCUENTO, no necesitamos crear otra variable con la que tenemos Alcanza y sobra, ( para este ejemplo puntualmente ).

    Metodo:

    DESCUENTO = ( 15 * CANT_REMERAS ) - { ( (15 * CANT_REMERAS) * DESCUENTO ) / 100 }

    como dijimos el precio es 15 y le restamos el descuento que era ,( precio * % )/ 100
    En al formula Usamos Descuento que supogamos vale 20% E ingresamos 33 remeras . es decir "20".
    Entonces la maquina lo entiende de esta manera.

    { ( (15 * CANT_REMERAS) * DESCUENTO ) / 100 }
    Lo cual nos da, que el PRECIO A PAGAR es "12"

    Entonces, en DESCUENTO tenemos que la maquina Lee lo siguiente

    20 = 15 - { (15 * 20) / 100 }
    Como resuelve el calculo, obtiene que:

    20 = 12
    Pero en realidad , la PC no hace Igualdades, esta ASIGNANDO
    porque a nuestra Vista esto quedo como

    DESCUENTO = 12

    Entonces una VEZ que PASO EXISTOSAMENTE esa LINEA de codigo,
    el "20" se pierde
    y ahora descuento es "12"
    entonces cada vez que pongamos DESCUENTO, como variable la maquina Lee "12"

    Como nos dice el ejercicio,demos Mostrar El precio que lo acabamos de obtener y La cantidad de remeras compradas.

    La cantidad ya la teniamos guardada adentro de CANT_REMERAS.
    Asi que ya no me falta Nada mas. Tengo el Precio y la Cantidad de REMERAS.
    Perfecto ahora solo falta Mostrar eso datos
    Pero antes de hacer dicho paso, veamo como hice en el Diagrama de flujo el programa.

    Recordemos que usamos el rectango para Procesos.
    aclaro que este Proceso en el rectangulo o "cuadradito": La PC lo realiza, todo perfecto, pero el usuario, ni si entera que la PC lo realiza, puesto que no se muestra por pantalla, Solo Ocurre el preceso aritmetico en el procesador y luego se almacena en la Memoria y Punto, pero al usuario no se le muestra Absolutamente nada de este proceso.
    Por lo tanto, no se entera que se realiza el proceso

    Ahora debemos mostrar esos valores.



    aparece otro nuevo Concepto:

    CONCATENAR

    Lo que hacemos es simple, Juntamos textos que estan entre comillas como "HOLA MUNDO"
    "LALALAL",etc

    con VARIABLES, como en este caso, CANT_REMERAS, DESCUENTO, que no estan entre comillas,
    Ademas para concatenar usamos un simbolo, llamado AMPERSAND; que es el Y Extendido

    AMPERSAND = &

    Con ese simbolo Juntamos Textos con VALORES dentro de variables

    Como vemos en el diagrama de flujo tenemos

    "La cantidad de remeras compradas fue " & CANT_REMERAS

    Eso que esta alli, debemos tener en cuenta que en en CODIGO, es decir, cuando programamos.
    Pero un vez el programa, realizado al 100 % y compilado y funcionando lo que me va a mostrar es
    Por ejemplo siendo que la cantidad de remeras era 33 el descuento era de 20%, entonces lo que vamos a ver por pantalla es

    "La cantidad de remeras es 33 "
    "El precio a pagar es 26.4"

    Como veras por pantalla no me salio ni, CANT_REMERAS, ni DESCUENTO, ni nada parecido, me Salio el VALOR que tenia ADENTRO esas variables.

    Entonces, el algoritmo seria asi:

    Eso si, no te olvides el "F" , con el circulito.Para indicar el fin el programa



    PSEUDO_CODIGO
    Código:
    CLS:
    INPUT "INGRESE LA CANTIDAD A COMPRAR DE REMERAS", CANT_REMERAS
    IF CANT_REMERAS < 11 THEN
     DESCUENTO = 0
    ELSE
     IF CANT_REMERAS < 20 THEN
      DESCUENTO = 10
     ELSE
      IF CANT_REMERAS < 30 THEN
       DESCUENTO = 15
      ELSE
       IF CANT_REMERAS < 50 THEN
        DESCUENTO = 20
       ELSE
        DESCUENTO = 3
       END IF
      END IF
     END IF
    END IF
    DESCUENTO = (15 * CANT_REMERAS) - (((15 * CANT_REMERAS) * DESCUENTO) / 100)
    PRINT "LA CANTIDAD DE REMERAS COMPRADAS FUE " & CANT_REMERAS
    PRINT "EL PRECIO A PAGAR ES DE : " & DESCUENTO
    EXIT PROGRAM 
    VISUAL BASIC
    Código:
    Private Sub Form_Load()
    Me.Cls
    Dim CANT_REMERAS As Integer
    Dim DESCUENTO As Integer
    CANT_REMERAS = InputBox("INGRESE LA CANTIDAD A COMPRAR DE REMERAS")
    If CANT_REMERAS < 11 Then
     DESCUENTO = 0
    Else
     If CANT_REMERAS < 20 Then
      DESCUENTO = 10
     Else
      If CANT_REMERAS < 30 Then
       DESCUENTO = 15
      Else
       If CANT_REMERAS < 50 Then
        DESCUENTO = 20
       Else
        DESCUENTO = 3
       End If
      End If
     End If
    End If
    DESCUENTO = (15 * CANT_REMERAS) - (((15 * CANT_REMERAS) * DESCUENTO) / 100)
    MsgBox "LA CANTIDAD DE REMERAS COMPRADAS FUE " & CANT_REMERAS
    MsgBox "EL PRECIO A PAGAR ES DE : " & DESCUENTO
    End
    End Sub 
    Código:
    #include <stdio.h>
    int main()
     {
      int CANT_REMERAS=0,DESCUENTO=0;
      printf("Ingrese la cantidad de remeras a comprar: ");
      scanf("%d",&CANT_REMERAS);
      if( CANT_REMERAS < 11 )
       {
        DESCUENTO=0;
       }
       else
       {
        if( CANT_REMERAS < 20 )
        {
         DESCUENTO=10;
        }
          else
        {
         if( CANT_REMERAS < 30 )
           {
            DESCUENTO=15;
           }
           else
         {
        if( CANT_REMERAS < 50 )
              {
             DESCUENTO=20;
             }
              else
            {
             DESCUENTO=30;
              }
           }
          }
       }
     DESCUENTO = (15 * CANT_REMERAS) - (((15 * CANT_REMERAS) * DESCUENTO) / 100);
     printf("\nLa cantidad de remeras compradas fue\t %d",CANT_REMERAS);
     printf("\nEl Precio a pagar es de:\t %d",DESCUENTO);
      return 0;
     }
    
    Antes que nada, lo colores, son irrelevantes, es decir no tienen mucha importancia puesto que dependen del compilador o IDE, que estes usando para realizar el codigo.
    Los colores no influyen en el andar, solo son para que tu vista, no se pierda cuando tengas que realizar programas con mas de 1000 lineas de codigo .

    ahora explico un poco.

    1) pseudocodigo, no es ningun lenguaje de programacion, tampoco hay estandares, ni normativas, es algo "ficticio" en donde la mayoria de los profesores que esñan programacion y estructura de datos y nosotros los programadores, decimos.
    "independientemente de los lenguajes, para evitar las particularidades de cada lenguaje, lo que hacemos es decir que ciertas palabras, representas ciertas acciones"

    Como veras en PSEUDOCODIGO, USE la instruccion "PRINT" e "INPUTBOX" para mostrar textos por pantalla, y para miostrar por pantalla el resultadol.
    Ahora en visual Basic USE "MSGBOX" e "INPUTBOX"
    Y en "C", que es un lenguaje que se llama, asi como la letra que indica su nombre.

    en C, usamos Printf y Scanf.

    Ahora hay muchos lenguajes que podemos nommbrar
    • java
    • C#
    • C++
    • C
    • Visual Basic Net
    • Visual Basic 6
    • Rampher
    • Ruby
    • Pascal
    • Delphi
    • Cobol
    • Fortran
    • Wild Out
    • Assembler
    • Python
    • ASP
    • BATCH
    Y todavia la lista sigue con como al rededor de 60 lenguajes mas, y eso que seguramente yo no conoscto algunos otros y por ende la lista todavia seria mas de 60.

    Ahora cuando les enseñan a los novatos, los primeros "codigos" se utiliza algun lenguajes EXTREMADAMENTE POPULAR ( lo cual no recomiendo )
    O PSEUDOCODIGO

    Como el PSEUDOCODIGO, es una interpretacion de CUALQUIER lenguaje, no podemos usar la caracteristicas de todos lo lenguajes habidos y por haber, puesto que enseñar los primeros pasos en programacion podria tomar 2 años, a 5 clases semanales de 4 hs diarias.
    Obviamente, como eso seria una locura, En PSEUDOCODIGO, usamos palabras para "representar" funciones que se usan con DIFERENTES SINTAXIS

    Ej: Para mostrar textos por pantallas, usamos PRINT
    Esto, como dije, no esta Estandarizado, ni por las ISO, ni por ANSI, ni ninguna otra Organizacion, por lo que posiblemente tu priofesor te pueda decir que en vez de PRINT, para mostrar textos por pantalla usas SHOW
    Solo por que a él, se le ocurrio, pero por lo general, se respeta de forma "voluntaria" que cosas como PRINT, son para mostrar textos por pantalla, que IF, se usa para las sentencias IF
    etc.

    ahora.

    como veras el PSEUDOCODIGO, es parecido a visual basic.
    No te engañes, visual basic puede ser un lenguaje muy malo, pero puede ser MUY potente, aunque posiblemente escuches en otros foros e incluso me escuches a mi diciendo que no un buen lenguaje.
    Hay que reconocer, que Si sabemos usarlo, hasta hay maneras de manjar memoria, cosa que Muchos dice que es "imposible", pero poder, quedate tranquilo/a que se puede hacer. En todo caso que sea dificil, no quiere dicir que no se pueda.

    ahora visual basic tiene al igual que PSEUDO CODIGO una sentencia para la ENTRADA DE DATOS

    INPUT: PSEUDOCODIGO
    INPUTBOX: VISUAL BASIC.

    En donde se utilizan de la siguiente manera
    INPUT
    [comando] [texto a mostrar], [Variable en donde se guarda lo que el usario escriba]
    Ej:
    Código:
       INPUT "Ingrese la cantidad de remeras a comprar" , CANT_REMERAS
    
    Esta linea lo que hace es mostrar lo siguiente "ficticiamente":


    ACLARO QUE LA IMAGEN EN REALIDAD ES DE UN PROGRAMA HECHO EN BORLAND C++
    porque compilador o lenguaje de pseudocodigo, no existe, solo es para empesar a enseñar
    en papel a los novatos como pasar los diagrama de flujo a codigo


    Luego que el usario escriba un numero, como por ejemplo "33"
    se va a guadar el 33 DENTRO de CANT_REMERAS, recien cuando se aprete ENTER.

    INPUTBOX: Comando de Visual basic para el ingreso de datos

    [variable] = [Comando] ( [Texto a mostrar] )
    Ej:
    Código:
    CANT_REMERAS = InputBox("INGRESE LA CANTIDAD A COMPRAR DE REMERAS")
    
    Esta linea una vez ejecutada muestra algo asi:


    En donde CANT_REMERAS, no va a guardar el valor que escriba el Usuario a MENOS que aprete "ACEPTAR" o precione "ENTER", si lo Hace, Entonces RECIEN EN ESE MOMENTO,
    Se guarda el valor que haya Ingresado el usuario en CANT_REMERAS, en este ejemplo : "33"

    ahora para mostrar, SOLO MENSAJES, o "ALGO", SIN PEDIR DATOS, o dar la opcion que el usuario meta mano es

    PRINT: PSEUDOCODIGO
    MSGBOX O PRINT : VISUAL BASIC ( VISUAL BASIC CUENTA CON AMBOS COMANDO Y TIENE VARIOS MAS)

    EN PSEUDO CODIGO. AL EJECUTAR
    Código:
     PRINT "LA CANTIDAD DE REMERAS COMPRADAS FUE " & CANT_REMERAS
     PRINT "EL PRECIO A PAGAR ES DE : " & DESCUENTO
    

    ACLARO QUE LA IMAGEN EN REALIDAD ES DE UN PROGRAMA HECHO EN BORLAND C++
    porque compilador o lenguaje de pseudocodigo, no existe, solo es para empesar a enseñar
    en papel a los novatos como pasar los diagrama de flujo a codigo

    El Msbox de Visual basic:

    Simplemente, ponemos

    MSGBOX "texto que queremos mostrar o la variable que queres que muestre el contenido dentro de la misma"

    EJ:
    Código:
      MsgBox "LA CANTIDAD DE REMERAS COMPRADAS FUE " & CANT_REMERAS
      MsgBox "EL PRECIO A PAGAR ES DE : " & DESCUENTO
    

    Ahora, tenemos C:

    C es un poco mas ingeniosos.

    Primero que en su condigo tenemos
    Código:
    #include <stdio.h> 


    C, no trae comandos como visual basic, para Mostrar por pantalla o Obtener datos.
    C, simplemente es un articulador de procesador, donde exiten comandos como
    IF, WHILE, FOR, MOD, ETC

    pero comandos como Printf y Scanf, no viene con C:
    Sin embargo una estandarizacion que esta realizada y apoyada por una organizacion, llamada ANSI
    American National Standards Institute
    www.ansi.org
    esta organizacion, Reglamento algunos componentes Externos que algunos programadores le Agregaron al C, para poder trabajar con comodidad
    Una de esas componentes externas es la Libreria STDIO.H
    que es la abreviatura de
    STandard Input Output
    el .H quiere decir .Head, es decir Cabezal, osea que esta en la Cabeza, Osea algo razonado, que esta Fuera del Cuerpo Central, pero que Coordina el Cuerpo central

    Ahora
    Cuando escribo
    Código:
     #include <stdio.h> 

    Automaticamente se habilitan los comandos printf y Scanf.
    Dado que sino los compiladores, nos darian Error, diciendo que printf y/o scanf, no se reconocen como una funcion declarada.
    dado que las palabras "printf" o "scanf", en realidad pueden ser o no funciones, y como no hay funciones creadas, el compilador no entiende que rayos queremos hacer y nos lanza un error, y no termina de compilar el programa, hasta que solucionemos esto.

    en fin con agregar la linea con la libreria sobra, para que funcione 100% bien

    Acotacion: #Include
    Se usa para incluir Librerias y Cabezales, dado que Stdio.h no es la unica libreria o cabezal que existe.
    Ademas por lo general el compilador tiene un Paquete de librerias, en donde las saca de la ruta "por defecto" que tiene cargada si la libreria esta entre <Libreria>
    Aunque si nosotros creamos una libreria y la ponemos en c:\archivos de programa\pepe\MYlibrary.h

    podriamos poner
    Código:
    #include "c:\archivos de programa\pepe\MYlibrary.h" 

    Entas librerias, en realidad son mejor conocidas,como Directivas de procesador o referencias.

    Bueno, vamos a lo llano

    Printf [ C ] :

    [comando] ( " texto y/o Parametros", [variable para los parametros |OPCIONAL|] );
    Sin Variable de paremetros

    Código:
      printf("Ingrese la cantidad de remeras a comprar: ");
    
    Con variables de parametros
    Código:
     printf("\nLa cantidad de remeras compradas fue\t %d",CANT_REMERAS);ç
    
    Como veras hay algunas cosas raras en la segunda linea.
    tenemos un \n , un \t y %d
    \n hace que Saltes de renglon, es decir, veamoslo asi, si estamos en la linea 1
    Y apretamos ENTER, queremos que lo siguiente occurra en la linea de abajo, no todo al lado de lo anterio
    porque queda FEO y como que estubiera mal Hecho.
    \t ( tabular ), si abris el notepad y apretas TAB, vas a ver que se corre 3 espacios.
    Con \t el programa, TABULA, es decir corre el curso 3 Espacios
    el cursor es ese guiosito que titila "_"

    %d, es un donde va a aparecer la variable de parametro, %d es un parametro
    donde indico con % que va a ver un parametro. % es como un comando, dentro de otro comando
    Osea un comando adentro de "printf"
    ese comando tiene propiedades:
    %d -- Muestra Numeros Enteros
    %f -- Numeros con Punto flotante ( es decir punto flotante refiere a numeros con COMA )
    %c -- Mostrar un solo caracteer ( es decir una sola letra )
    %s -- Mostrar Cadena de caracteres ( es decir palabras )

    Esos son las propiedades mas conocidas, aunque en realidad con 14 propiedades, aunque algunas son medias bobas, y no viene al caso explicarlas todas.

    Scanf [ C ]
    Código:
     scanf("%d",&CANT_REMERAS);
    
    Scanf se representa asi:
    [comando] ("Parametros",[Variable de parametros])

    Como vemos hay un & , ese Ampersand, lo que hace no es CONCATENAR como vimos, antes.
    En este caso hace algo especial, solo por estar dentro del Scanf, Seguido por Una Variable
    ese &, indica que el DATO que escriba el usario se guarda dentro de la variable.
    Pero como C, es sensible a la pocion y en que momento se cargan las variables. Debemos decir que ese DATO apunta a la DIRECCION de la VARIABLE dentro de la memoria.

    Si no entendiste el concepto, por ahroa dejalo. Solo sabe, que cuando hay 1 scanf , al lado de la variable ponele &

    scanf, puede tomar mas de una variable a la vez.
    Ejmplo
    Código:
     scanf("%d%d%d",&NUM1,&NUM2,&NUM3);
    
    Aca en este caso el Scanf, lo que hace es pedir 3, veces que le ingresen datos. En donde el primero se garda en NUM1, el segundo en NUM2, y el tercero en NUM3
    Ahora como veras puse los "%d" y esima puse 3

    Bueno esto es pra que el scanf, sepa que son Variables de tipo ENTERO, ( sin coma ) y que van a ser 3 VARIABLES.


    Como se muetran el scanf, y el prinf ?

    Como veras, Las imagenes del PSEUDOCODIGO, las tome de "C"

    Bueno, hasta aca cubri todo creo.
    El ejercicio 2 te lo dejo para que trates de hacerlo.
    Cualquier cosa consultame, aunque la prox. no voy a ser tan explicito, puesto que voy a dar por sentado que entendiste varios conceptos, salvos que me digas
    "no entendi aquello"

    Suerte!

    Sino ya sabes, soborna al profe.
    Si queres clases de como ejercer la corrupcion aca tenes alguien que te puede ayudar

    ç
    ¿Que te pasha Clharin ?
    Me gusta este mensaje
  • #5 Re: Necesito AYUDA-ALGORITMOS!

    me parece demasiado...
    Me gusta este mensaje
  • #6 Re: Necesito AYUDA-ALGORITMOS!

    excelentee!!! muy buena la respuesta de HeavenMight
    yo estoy estudiando informatica y use esos ejercicios para practicar y con la respuesta se me salieron varias dudas... excelentee!! ...
    bueno xao...
    Me gusta este mensaje
  • #7 Re: Necesito AYUDA-ALGORITMOS!

    Originalmente publicado por diego_kun_sen Ver mensaje
    me parece demasiado...
    Bueno, la extendi mucho y explique todo, porque como advirtio, eran sus primeros pasos y aveces queda el "por que?" realizo ese paso o "como llego a ese obtener ese resultado a patir de las otras cosas O_O ?"

    aunque, si mas o menos estas canchero la respuesta es




    Y
    Código:
     
    CLS:
    INPUT "INGRESE LA CANTIDAD A COMPRAR DE REMERAS", CANT_REMERAS
    IF CANT_REMERAS < 11 THEN
     DESCUENTO = 0
    ELSE
     IF CANT_REMERAS < 20 THEN
      DESCUENTO = 10
     ELSE
      IF CANT_REMERAS < 30 THEN
       DESCUENTO = 15
      ELSE
       IF CANT_REMERAS < 50 THEN
        DESCUENTO = 20
       ELSE
        DESCUENTO = 3
     END IF
    END IF
    END IF
    END IF
    DESCUENTO = (15 * CANT_REMERAS) - (((15 * CANT_REMERAS) * DESCUENTO) / 100)
    PRINT "LA CANTIDAD DE REMERAS COMPRADAS FUE " & CANT_REMERAS
    PRINT "EL PRECIO A PAGAR ES DE : " & DESCUENTO
    EXIT PROGRAM 
    Me gusta este mensaje
  • #8 Re: Necesito AYUDA-ALGORITMOS!

    sisisi o sea, es excelente pero me parece demasiado HACERSELO :P
    Me gusta este mensaje
  • #9 Re: Necesito AYUDA-ALGORITMOS!

    A juzgar por la pregunta inicial, el CURSO que le da HeavenWeigh es superior al que le dieron en clase...
    Pero bueno, soy pesimista, esta persona lo que quiere es algo fácil, rápido, y por supuesto inútil...
    Me gusta este mensaje
  • #10 Re: Necesito AYUDA-ALGORITMOS!

    Hola panitas, soy novato en el foro y me gustaria con alguien que me ayudara en unos problemitas de c++, veo que tienen mucha experiencia pues otros ejercicios en los que han pedido ayuda los corro en el programa y ejecuta muy bien, les agradeceria mucho su colaboracion.
    Estos son los problemas:
    Plantear la solución algorítmica y en Lenguaje C ++ a los siguientes problemas:
    1. Leer dos números y conocer cual es el mayor
    2. Solicitar una cantidad determinada de números, leerlos y mostrar su promedio
    3. Crear un vector de 20 posiciones, llenarlos de números y mostrarlos
    del último al primero
    4. Implementar un algoritmo que tome el vector anteriormente creado y
    lo invierta.
    Muchachos creo que soy muy malo para programacion y el que va a pagar los platos rotos va a ser mi pc que esta apunto de ser estrellado contra la pared..
    Me gusta este mensaje
1 2 >
Estás en: Inicio >> Foros >> Informática >> Programación


Estadísticas del tema
  • 10 RESPUESTAS
  • 2445 VISTAS
  • 8 USUARIOS RESPONDIERON
 
Ir arriba
Contacto | Acerca de | Ayuda | Términos Legales | privacidad | Pautas de convivencia | Mapa de los foros | TrabajÁ con nosotros
©2008 Psicofxp.com S.A. - Todos los derechos reservados
Certifica IAB