Descarga la aplicación para disfrutar aún más
Vista previa del material en texto
Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 1 1 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática / Computación Algoritmos - Variables – Tipos de Datos Diagramas – Estructura Secuencial – Programa C 2 Pasos a seguir, comúnmente, por los programadores: Paso 1 – Análisis del Problema Paso 2 – Diseño del Algoritmo Paso 3 – Codificación - Creación del Programa Paso 4 – Ejecución del Programa 1 2 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 2 3 Partimos de un enunciado, el cual debe ser completo y no debe tener ambigüedades. Deben estar bien definidos : el conjunto de datos de entrada ( datos conocidos ). el conjunto de los datos de salida ( resultados, datos desconocidos ). el conjunto de condiciones que vinculan a los conjuntos de datos anteriores, (acciones primitivas, condiciones a evaluar, estructuras de programación). Ejemplo Genérico Enunciado del Problema : Se tiene una caja cerrada que contiene varias fichas de colores. Se deben separar las fichas rojas del resto de las fichas de la caja. 4 Enunciado del Problema : Se tiene una caja cerrada que contiene varias fichas de colores. Se deben separar las fichas rojas del resto de las fichas de la caja. Datos de Entrada : la caja cerrada las fichas de colores Datos de Salida : Todas la fichas rojas 3 4 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 3 Vinculación entre datos de entrada y salida para resolver el ejercicio planteado : Acciones primitivas : - abrir la caja - mirar el interior de la caja - tomar una ficha - ponerla a la derecha - ponerla a la izquierda Condiciones a evaluar : - hay fichas en la caja ? - la ficha es roja ? Procesador o Interlocutor: Suponer que quien va a ejecutar estas acciones primitivas y evaluar las condiciones es un niño de 8 años Una acción se dice primitiva cuando su solo enunciado es comprendido por el procesador y puede ejecutarla sin necesidad de explicación adicional. La descripción de una acción primitiva en un lenguaje determinado se llama sentencia o a veces también instrucción 5 Procesador o Interlocutor: Es una entidad capaz de comprender y ejecutar un conjunto de acciones elementales o primitivas y evaluar condiciones o proposiciones lógicas que tienen como resultado ser verdaderas o falsas. En este paso se determina como hace el programa la tarea solicitada. Un algoritmo especifica cada una de las acciones primitivas que pueden ser ejecutadas por un procesador, y que lleva a la solución de un problema, indicando el orden lógico de realización de cada acción. Estas acciones deben ser precisas y la cantidad de acciones debe ser finita, hay una primera y una última acción. Algoritmo • Secuencia de acciones • Orden lógico • Sin ambigüedades Problema Resuelve un … ComputadoraOtorga inteligencia a … Se comunica a … Lenguaje de Programación Se escribe en … 6 5 6 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 4 Algoritmo que resuelve el problema planteado : Comenzar abrir la caja ; mirar el interior de la caja ; Mientras haya fichas en la caja Comenzar tomar una ficha ; Si la ficha es roja ponerla a la derecha ; Sino ponerla a la izquierda ; mirar el interior de la caja ; Fin ; Fin . En este algoritmo se ejemplifica a una estructura de repetición (ciclo Mientras ) y a una estructura de decisión ( Si – Sino ) 7 Computadora Una computadora es una máquina electrónica que acepta información digitalizada de entrada, la procesa de acuerdo a un programa que tiene almacenado en la memoria y produce resultados de salida Salida de información Entrada de información digitalizada convertida en unos y ceros Procesamiento de la información según un programa Programa: conjunto de instrucciones o sentencias entendibles por la computadora 8 convertida en caracteres comprensibles por los humanos Una computadora es un procesador que puede ejecutar un repertorio concreto y finito de sentencias o instrucciones y que puede evaluar proposiciones lógicas, todas ellas indicadas en un programa 7 8 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 5 9 Consiste en traducir el algoritmo a un lenguaje de programación, capaz de ser interpretado por una computadora, lo que da como resultado un programa. Es la realización, instrucción por instrucción, del programa por parte del procesador, la computadora. Para la ejecución del programa los pasos que siguen son: 1- Edición: escribir el texto del programa en el editor del programa del lenguaje con el cual se va a trabajar (lenguaje C) 2- Compilación: traducción del lenguaje de programación al lenguaje de máquina, a cargo del compilador del lenguaje, con la consiguiente corrección de errores sintácticos 3- Ejecución: corrida del programa por parte de la computadora, con la consiguiente corrección de eventuales errores en tiempo de ejecución y de lógica. 10 Una variable es una dirección en el mapa de la memoria de la computadora, capaz de almacenar un valor por un lapso de tiempo, es decir, una variable es un espacio de memoria que contiene datos de un determinado tipo y que se identifica con un nombre (identificador). Se denomina variable pues el contenido de ese espacio de memoria puede variar durante la ejecución del programa que la utiliza. El nombre de la variable representa la dirección de memoria que ocupa la variable. El contenido de la variable es el valor almacenado en dicha posición de memoria 12 cantidad Nombre del espacio de memoria o indirectamente, dirección de memoria de la variable Contenido de la variable Valor del dato almacenado en el espacio de memoria Memoria Principal (RAM) Celdas en el Mapa de Memoria 9 10 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 6 11 La sentencia de asignación permite almacenar un cierto valor en una cierta dirección de memoria, es decir darle un valor a una variable. Cómo almacenamos o guardamos un valor o dato en una variable ? Operación de Asignación cantidad = 12 Identificador o nombre de la variable que almacena el valor Operador asignación en C contenido ( Debe ser conocido ) A la variable de tipo numérica cantidad se le asigna el valor 12, es decir, el valor 12 se almacena en la posición de memoria identificada como cantidad 12 El lenguaje C determina las siguientes condiciones al elegir nombres de variables : Deben empezar con una letra, luego pueden continuar letras y/o números cant cant1 c1 | 1cant No pueden dejarse espacios notaMax | nota Max No usar caracteres especiales tales como: signos de puntuación, ñ, °, %, $, #, etc. porc anio | % p% %p año Solo puede utilizarse el guión bajo ( underscore ) nota_Max No usar palabras reservadas al lenguaje, tales como: auto – break – case – char – const – continue – default – do – double – else - enum extern – float – for – goto – if – int – long – register – return – short – signed - sizeof static – struct – switch – typedef – union – unsigned – void – volatile - while 11 12 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 7 13 Si bien el lenguaje C admite nombres de hasta 32 caracteres, para mejorar la legibilidad del programa se recomienda tener en cuenta : Elegir nombres significativos, es decir que representen al dato que van a guardar Elegir nombres cortos Al elegir un nombre, este debe mantenerse a lo largo de todo el programa,pues: porcentaje porcent porc p Son todas variables diferentes, por lo tanto diferentes direcciones de memoria El lenguaje C es sensible a mayúsculas y minúsculas por lo tanto : cant Cant CANT cAnT son todas variable diferentes, es decir representan distintas direcciones de memoria 14 Numéricas Enteras Reales Palabra Reservada Formato int float double %d Rango de valores -32768 a 32767 3.4E-38 a 3.4E+38 1.7E-308 1.7E+308 long int -2147483648 a 2147483647 %f (punto flotante) %lf (doble precisión) Caracteres (Alfanuméricos) char %c (un caracter)Código ASCII 256 caracteres %ld (decimal) (+/-) 13 14 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 8 15 EJEMPLO: x = 2 ; y = 3 ; x = y + 1 ; x = x + 1 ; y = 2 + 3 * 5 ; y = ( 2 + 3 ) * 5 ; x = x + y ; MEMORIA PRINCIPAL x y 2 4 5 30 3 17 25 Una variable simple puede almacenar un solo valor : 1 variable simple = 1 sola posición de memoria = 1 solo valor almacenado Cuando se asigna un valor a una variable se pierde el valor que la variable tenía almacenado previamente, es decir el nuevo valor asignado se sobrescribe al anterior 16 Ejemplo de declaración de variables: int edad , hijos ; // declaración de dos variables enteras float sueldo ; // declaración de una variable real char sexo ; // declaración de una variable caracter (El punto y coma final es el separador de instrucciones ) Asignación de valor a una variable : Ejemplo 1: edad = 32 ; hijos = 2 ; sueldo = 8500.00 sexo = 'F' ; // la constante carácter (valor) se escribe entre apóstrofos Ejemplo 2: Declaración y asignación simultánea int a = 2 , b = -5 , c , d ; // declaración y asignación c = a + b ; d = b ; b = a ; a = d ; // intercambio de valores entre las variables a y b se requiere de una variable auxiliar (d) 32 edad 2 hijos 8500.00 sueldo F sexo Espacios de Memoria 2 -5 a -5 2 b -3 c -5 d 15 16 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 9 17 Es el algoritmo expresado con símbolos gráficos. E Entrada de Datos scanf( ) S Salida de Datos printf( ) Asignación = 18 Estructura Condicional : if - else Estructuras de Repetición : for ( ) while ( ) V F Condición condición cuerpo Inicialización , Cond , Incremento cuerpo 17 18 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 10 19 Enunciado del Problema. En un curso de computación se conoce la cantidad máxima de vacantes al curso, la cantidad de alumnos nuevos inscriptos y la cantidad de alumnos recursantes inscriptos. Sabiendo que la cantidad de vacantes no fue cubierta, se desea calcular e informar : a) Cantidad de vacantes libres. b) Porcentaje de alumnos recursantes inscriptos. Paso 1. Análisis del Problema Datos de entrada : cantidad máxima de vacantes ( vmax ) cantidad de alumnos nuevos ( nuevos ) cantidad de alumnos recursantes ( rec ) Datos de Salida : cantidad de vacantes libres ( libres ) porcentaje de recursantes inscriptos ( porc ) Vinculación : Aritmética Condición del Enunciado 20 Entrada de Datos Salida de Datos Asignación Guardar un valor en una variable Una estructura secuencial es una secuencia ordenada de instrucciones o pasos que llevan a la solución de un problema dado. Esta secuencia de pasos sigue un orden lógico, todos ellos siempre van a ser ejecutados y la cantidad de pasos es finita E vmax , nuevos , rec total = nuevos + rec libres = vmax - total porc = rec * 100.0 / total S libres , porc 19 20 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 11 21 E vmax , nuevos , rec total = nuevos + rec libres = vmax - total porc = rec * 100.0 / total S libres , porc vmax 60 nuevos 33 rec 16 total 49 libres 11 porc 32.65 Prueba de escritorio del funcionamiento del algoritmo 22 Función printf( ) : Es una función que permite escribir en pantalla texto y contenido de variables. La sintaxis de su llamada es: printf( “cadena_de_control” , lista_de_variables ) La cadena_de_control es una cadena de caracteres, que se debe escribir entre comillas dobles ("). En la función printf, el programador debe indicar el formato de salida de los datos que se van a mostrar por la pantalla, para ello, se puede hacer uso de: - Texto ordinario (texto normal). - Especificadores de formato de las variables a informar %d %f %c - Secuencias de escape \n (salto de línea) \t (tabulador horizontal) Ejemplo 1: Programa Pantalla printf( “Hola”); Hola printf( “\ncomo\nte va?\n” ); como te va? _ S Cada \n produjo un salto de línea 21 22 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 12 23 \n produce un salto de línea Ejemplo 2: Programa int edad; float sueldo; edad = 30; sueldo = 26350.50; printf( “Tu edad es %d y tu sueldo es $ %.2f\n” , edad , sueldo ); Tu edad es 30 y tu sueldo es $ 26350.50 _ Pantalla %d formato de la variable cuyo contenido quiere informar en esa posición del texto %.2f %f es el formato de la variable real a informar en esa posición del texto. El indicador .2 determina que se deben mostrar solo dos decimales del número real 24 Función scanf( ) : La función scanf permite asignar a una o más variables, un valor (dato) recibido desde el teclado. La sintaxis de su llamada es: scanf( “cadena_de_control” , & variable ) La cadena_de_control es una cadena de caracteres, que se debe escribir entre comillas dobles (") en la cual el programador debe indicar el formato de entrada de los datos que se van a ingresar por teclado. - Especificadores de formato de las variables a asignar %d %f %c Ejemplo 1: Programa Pantalla int edad; Ingresar edad: 26 printf( “Ingresar la edad: “ ); Tu edad es 26 años scanf( “%d” , & edad ); _ printf( “Tu edad es %d años\n”, edad ); E Este valor (26) se ingresa desde el teclado y al presionar ENTER se guarda en la variable edad La función scanf produce un salto de línea En Memoria 26 edad NOTA: El lenguaje C es sensible a mayúsculas y minúsculas y la mayoría de las instrucciones en C se escriben en minúscula por lo que, tanto printf como scanf se escriben en minúscula. 23 24 Universidad Tecnológica Nacional Facultad Regional Haedo Fundamentos de Informática Computación CPB 13 25 #include <stdio.h> // para scanf y printf #include <stdlib.h> // para system(“PAUSE”) main ( ) { int vmax, nuevos, rec, libres, total ; float porc ; // Ingreso de datos printf("Ingresar cantidad maxima de vacantes al curso: "); scanf("%d",&vmax); printf("Ingresar cantidad de alumnos nuevos inscriptos: "); scanf("%d",&nuevos); printf("Ingresar cantidad de alumnos recursantes inscriptos: "); scanf("%d",&rec); // cálculo de resultados total = nuevos + rec ; libres = vmax - total ; porc = rec*100.0 / total ; // salida de resultados printf("Cantidad de vacantes libres: %d", libres ); printf("\n"); printf("Porcentaje de alumnos recursantes: %0.2f %%\n ", porc ); system(“PAUSE”); } Poner doble%Para agregar el signo porcentual (%) en la salida Para que el resultado de la división sea real por lo menos uno de los operandos debe ser real Pausa para detener la ejecución Salto de línea Otra forma de hacer pausa en el programa es utilizando la función getch() incluida en la librería conio.h 26 Datos de entrada ingresados desde teclado y asignados a cada variable por la función scanfDatos de salida (resultados) informados en pantalla por la función printf system(“PAUSE”) 25 26
Compartir