Ligeramente modificado la especificación de un programa de CS1El gerente de un restaurante de comida rápida requiere un programa para ayudar a las ventas de canciones. La salida sólo sirve hamburguesas con papas fritas, una hamburguesa de comida cuesta $ 5.95. Los clientes pueden solicitar la cantidad de comidas de hamburguesas. El programa es ayudar a calcular los precios de los pedidos, y también a llevar registros de los pedidos totales y el mayor pedido individual. El programa consiste en utilizar un menú sencillo bucle de estilo, seleccione las opciones:
(1) Realizar pedido (2) Imprimir totales hasta la fecha (3) Salir La opción de orden debe dar lugar a un mensaje para el número de comidas necesarias. Los datos de entrada no válida (valor <= 0) deben ser desechados, el programa es más rápido que el usuario con las opciones. Los datos de entrada válido debe dar lugar a cambios de las ventas totales y, en su caso, la actualización del registro de la mayor orden. El programa también debería responder con un número de orden y el costo de la orden. La opción de los totales deben imprimir los detalles de las ventas totales y el mayor orden. La opción de dejar de fumar termina el programa. Una selección de opción no válida se informó, a continuación, el programa se repite el mensaje de de entrada. (La especificación original incluía un listado que muestra los formatos exacta requerida para las entradas y salidas.) Obviamente, el programa en Perl requiere un bucle while que contiene un si ... elsif ... else construir. #! / share / bin / perl-w = costo de $ 5,95; $ orderNum = 0; $ maxorder = 0; $ totalsales = 0, mientras que (1) (print 'Bienvenido a CS1 Burgers 1. Hacer un pedido 2. Imprimir totales 3. Salir Enter your choice: '; $ order = print "Importe total: \ $ $ totalsales \ n"; "imprimir el número máximo de platos ordenados en un orden". "único: platos $ maxorder \ n";) elsif ($ orden == 3) (last;) else ( print "Esa fue una mala elección. ... inténtelo de nuevo";)) print "¡Adiós! \ n"; (¿Te acuerdas de volver a los tiempos en que algo como esto era una tarea difícil que le llevó a la semana?) Funciones que se nota en el código son: A 'para siempre' bucle while, denunciado por la última declaración de opción de selección de 3. El uso de amulti definición cordel para simplificar la declaración de la cadena de caracteres. El uso de la Esta asignación fue en realidad de un sujeto de nivel superior, pero también requiere solamente la más básica de las estructuras de programación. El programa es para leer los datos relativos a los archivos y directorios, como los obtenidos por el comando ls-l Unix. De entrada se debe leer de STDIN tubo (ya sea de ls-l o redirigir desde un archivo producido a través de ls-l). Ejemplo de datos de entrada son: -rx - x - x 1 root bin 20796 6 de enero 2000 acctcom-rx - x - x 37 root bin 5256 6 de enero 2000 BAD lrwxrwxrwx 1 root root 29 30 de noviembre 2000 cachefspack -> .. / lib / fs / cachefs / cachefspack drwxr-xr-x 2 root bin 512 10 de junio 15:08 sparcv7 El programa es procesar las líneas relativas a los archivos simples y directorios; entradas de directorio especiales, tales como enlaces, son para ser ignorado. El programa es generar una línea de salida para cada línea de entrada procesado. Esta línea de salida es volver a escribir los permisos de archivo en la forma del código octal utilizados para los permisos de Unix, es para indicar si la línea se refiere a un archivo o directorio, y es para imprimir el nombre de la entrada. Cuando todas las líneas de entrada se han procesado, el programa es imprimir el recuento de la cantidad de archivos y directorios, y luego terminar. La salida de los datos anteriores deben ser: 511 acctom archivo 511 archivo 755 BAD directorio sparcv7 La primera versión de una solución para esta asignación se basa nuevamente en un bucle while dentro de la cual se realiza todo el proceso. El bucle lee una línea de STDIN, y termina cuando una línea vacía se recibe (al final de su condición de archivo). El tratamiento depende de los caracteres específicos que son de entrada, la función substr estándar de Perl se utiliza para seleccionar los caracteres de la línea de entrada. #! / share / bin / perl-w $ archivo = 0; $ directorios = 0 while ($ str = print "$ (código) \ t $ (tipo) \ t $ (name) \ n";) print "$ archivos de los archivos, directorios y $ directorios \ n"; while ($ str = for ($ i = 1; $ i <10; $ i + +) ($ code *= 2, si ( "-" ne substr ($ cadena, $ i, 1)) ($ code + +;)) $ pos = rindex ( Nombre de $ str, ""); $ = substr ($ str, $ pos +1); printf "% o% s", $ code, "\ t $ (tipo) \ t $ (name) \ n";) En la sentencia printf, o el primer argumento '%% s' es la cadena de formato, lo que especifica la salida de un valor numérico en octal, seguido por una cadena. Los otros argumentos son el código, y una cadena con el tipo (archivo o directorio) y el nombre de la entidad. Por supuesto, hay otra manera de hacerlo. Desde una cadena de formato es una cadena de Perl doblemente citado, se puede interpolar los valores. La siguiente variante sería tan bueno: printf "% o \ t $ (tipo) \ t $ (name) \ n", $ code; un artículo presentado por Ronald Smith Descargo de responsabilidad:Nuestro sitio web no es responsable por el contenido de este artículo. Webarticles es un recurso de información gratuito. Importante: Este artículo "Ligeramente modificado la especificación de un programa de CS1" fue traducida por un software automático. Sentimos pena por los errores de ortografía que pueda haber ocurrido. Gracias por su comprensión.
|
|||||
| Online: 208 users browsing the articles directory |
|
|