Descargar la presentación
La descarga está en progreso. Por favor, espere
1
ANALISIS DE PROBLEMAS SOLUCIONES LOGICAS
PREPARAR CAFÉ UTILIZANDO COMO HERRAMIENTA UNA CAFETERA ELECTRICA. Prof. Dra. ADDYS DE LAM
2
OBJETIVO ANALIZAR PROBLEMAS DE LA VIDA RUTINARIA PARA ENCONTRAR LAS DIFERENTES PARTES NECESARIAS PARA SU SOLUCION, ASOCIADAS A LA SOLUCION DE PROBLEMAS POR MEDIO DE LA PROGRAMACION. Prof. Dra. ADDYS DE LAM
3
Preparar Café en Cafetera Eléctrica
Elementos Ahh!!! necesito Herramientas Procedimientos Prof. Dra. ADDYS DE LAM
4
Elementos Herramientas Procedimientos
Materia Prima Café preparado Herramientas Depósitos Resultados Procedimientos Instrucciones (Procesos) Prof. Dra. ADDYS DE LAM
5
Materia Prima Depósitos Instrucciones (procesos) Resultados Datos
Entradas Depósitos Áreas de Almacenamiento Espacio de Memoria Procesos aritméticos / lógicos Instrucciones (procesos) Declaraciones Resultados Salidas Prof. Dra. ADDYS DE LAM
6
PASOS PARA RESOLVER UN PROBLEMA
OBJETIVOS: DEFINIR CONCEPTOS BASICOS DE PROGRAMACION. DESCRIBIR LOS PASOS PARA RESOLVER UN PROBLEMA UTILIZANDO AL COMPUTADOR COMO HERRAMIENTA DE APOYO. Prof. Dra. ADDYS DE LAM
7
Ciclo de Vida de La Programación
2 Definición Análisis ¿Cuál es el problema? E - P - S Prof. Dra. ADDYS DE LAM
8
Ciclo de Vida de La Programación
Algoritmo Prueba de Escritorio Pseudocódigo Prof. Dra. ADDYS DE LAM
9
Ciclo de Vida de La Programación
Codificación Traducción Compilación 1 no Compilación Prog. Fuente Errores sintaxis si Prog. Compilador Lista fuente con errores de sintaxis Lenguaje C Prof. Dra. ADDYS DE LAM
10
Ciclo de Vida de La Programación
Ejecución 2 1 si Enlace Ejecución Errores ejecución Prog. Objeto Prog. Ejec. en leng. máquina no Resultados Datos Listado fuente Prof. Dra. ADDYS DE LAM
11
Ciclo de Vida de La Programación
Verificación Implementación Procedimientos, entrenamiento en uso Datos Resultados Fuente Prof. Dra. ADDYS DE LAM
12
Ciclo de Vida de La Programación
Mantenimiento Documentación Modificaciones, actualizaciones Interna (codificación) Externa Prof. Dra. ADDYS DE LAM
13
Elementos Café Azucar che leche Agua Leche Prof. Dra. ADDYS DE LAM
14
Herramientas Contenedor de agua Cafetera Contenedor del café en polvo
Taza Contenedor del café líquido Taza para la leche Cucharita Prof. Dra. ADDYS DE LAM
15
Forma de Preparar un Café
Procedimientos Instrucciones Uso de Cafetera Forma de Preparar un Café Prof. Dra. ADDYS DE LAM
16
Entradas “Cálculo de 3 Valores” Tipos de Datos Entradas
x x Alfanumérico Enteros Reales V1 entero V2 entero V3 entero Identificadores Prof. Dra. ADDYS DE LAM
17
Enunciado del problema
Obtenga el promedio de tres valores enteros y presente los resultados bajo el siguiente formato: Universidad Tecnológica de Panamá Facultad de Ing. de Sistemas Computacionales Cálculo de Promedio Pág.. 99 Fecha: 99/99/99 Valor 1 Valor 2 Valor 3 Promedio 9---9 9---9 9---9 9---9 Cantidad de procesados Prof. Dra. ADDYS DE LAM
18
Procesos Promedio valores / total de valores prom (v1 + v2 + v3)/3
Prof. Dra. ADDYS DE LAM
19
Salidas Universidad Tecnológica de Panamá
Fac. Ing. de Sistemas Computacionales Encabezado Cálculo de Promedio Fecha: 99/99/99 Pág.. 99 Valor 1 Valor 2 Valor 3 Promedio 9---9 9---9 9---9 Detalles Totales Cantidad de procesados 9---9 Entradas Procesos Prof. Dra. ADDYS DE LAM
20
Ejemplo: “Obtención del promedio de tres valores dados por el usuario”
Algoritmo Inicio /*Declaración de variables*/ Real: prom Enteros: v1, v2, v3 /*Entrada de los tres valores*/ Visualizar(“Entre los tres valores”) Leer(v1,v2,v3) /*Calculo del promedio*/ prom=(v1+v2+v3)/3 /*Salida de resultados*/ Visualizar(“Valor 1, Valor 2, Valor 3, Promedio”) Visualizar(v1, v2, v3, prom) Fin Prof. Dra. ADDYS DE LAM
21
Programa #include <stdio.h> main() {
/*Declaracion de variables*/ float prom; int v1,v2,v3; /*Entrada de los tres valores*/ printf (“Entre los tres valores:”); scanf (“%i %i %i”, &v1, &v2, &v3); /*Calculo del promedio*/ prom=(v1+v2+v3)/3; /*Salida de resultados*/ printf(“\n \t Valor 1 \t Valor 2 \t Valor 3 \t Promedio \n”); printf(“\t %i \t %i \t %i \t %5.2f”, v1, v2, v3, prom); } Prof. Dra. ADDYS DE LAM
22
Objetivos • Conocer el entorno del Lenguaje C.
Conocer los elementos básicos del C. Manejar los diferentes tipos de datos. Definir constantes. Comprender los conceptos sobre constantes y variables. Conocer los diferentes operadores del C y cómo se construyen las expresiones. Prof. Dra. ADDYS DE LAM
23
INTRODUCCIÓN AL LENGUAJE C
FUE DESARROLLADO EN LOS AÑOS 70 POR DENNIS RITCHIE EN LOS LABORATORIOS BELL. ES EL RESULTADO DE DOS LENGUAJES ANTERIORES, BCPL Y B. FUE DISEÑADO PARA EL DESARROLLO DE SISTEMAS OPERATIVOS (UNIX), SIN EMBARGO POSEE CARACTERÍSTICAS ESTRUCTURADAS DE ALTO NIVEL LO QUE PERMITE DESARROLLAR PROGRAMAS DE APLICACIÓN. SE DIO A CONOCER EN 1978 POR LA PUBLICACIÓN DE BRAIN KERNIGHAN Y RITCHIE. Prof. Dra. ADDYS DE LAM
24
INTRODUCCIÓN AL LENGUAJE C
C ES UN LENGUAJE DE PROGRAMACIÓN ESTRUCTURADO DE PROPÓSITOS GENERALES. SE PUEDEN DESARROLLAR PROGRAMAS FUENTES CONCISOS, POR SU GRAN NÚMERO DE OPERADORES. TIENE UN CONJUNTO DE INSTRUCCIONES RELATIVAMENTE PEQUEÑO, PERO INCLUYE NUMEROSAS FUNCIONES DE BIBLIOTECA QUE MEJORAN LAS INSTRUCCIONES BÁSICAS. LOS PROGRAMAS SON PORTABLES, SE PUEDEN COMPILAR Y EJECUTAR EN MUCHAS COMPUTADORAS DIFERENTES CON MUY POCA MODIFICACIÓN. Prof. Dra. ADDYS DE LAM
25
El ENTORNO DE C EDITOR: PERMITE INTRODUCIR Y MODIFICAR EL CODIGO FUENTE C. COMPILADOR: ES EL PROGRAMA QUE CONVIERTE EL FUENTE C EN UN CODIGO ENTENDIBLE POR EL COMPUTADOR. ARCHIVOS PARA INCLUIR: ARCHIVOS SEPARADOS (INCLUDE) QUE FUEDEN SER UTILES EN CIERTAS SITUACIONES. ARCHIVOS DE BIBLIOTECAS: PROGRAMAS PREVIAMENTE COMPILADOS QUE REALIZAN FUNCIONES ESPECIFICAS. ENLAZADOR: COMBINA TODAS LAS PARTES NECESARIAS ( TALES COMO ARCHIVOS DE BIBLIOTECA) DE UN PROGRAMA C PARA PRODUCIR EL CODIGO EJECUTABLE FINAL. Prof. Dra. ADDYS DE LAM
26
ESTRUCTURA DE UN PROGRAMA EN C
CONSTA DE UNA O MÁS FUNCIONES, UNA DE LAS CUALES SE LLAMA main. CADA FUNCIÓN DEBE CONTENER: CABECERA DE LA FUNCIÓN, QUE CONSTA DEL NOMBRE DE LA FUNCIÓN SEGUIDO DE LA LISTA OPCIONAL DE ARGUMENTOS ENCERRADOS EN PARÉNTESIS. LISTA DE DECLARACIONES DE ARGUMENTOS. SENTENCIA COMPUESTA, ENCERRADA CON UN PAR DE LLAVES { }. Prof. Dra. ADDYS DE LAM
27
ESTRUCTURA DE UN PROGRAMA EN C
LAS SENTENCIAS DE EXPRESIÓN DEBEN TERMINAR EN PUNTO Y COMA (;). LOS COMENTARIOS PUEDEN APARECER EN CUALQUIER PARTE DEL PROGRAMA DELIMITADOS POR /* */. EJEMPLO: /*MI PRIMER COMENTARIO EN C*/ PUEDE USAR MAYÚSCULA O MINÚSCULA, AUNQUE ES COSTUMBRE ESCRIBIR EN MINÚSCULA LAS INSTRUCCIONES ORDINARIAS. MAYÚSCULA Y MINÚSCULA NO SON EQUIVALENTES EN C. Prof. Dra. ADDYS DE LAM
28
Main Función 1 Función 2 Función 3 Biblioteca Prof. Dra. ADDYS DE LAM
29
Biblioteca stdio.h math.h conio.h time.h . . . puts printf abs clrscr
getdate gets getchar ceil gotoxy gettime cos textcolor getch putchar setdate exp window . . . settime scanf sqrt textbackground time fmod . . . Prof. Dra. ADDYS DE LAM . . . . . .
30
PROGRAMA SENCILLO EJEMPLO
#include <stdio.h> /* Este programa solo visualiza un mensaje en la pantalla del computador */ main ( ) { puts("Bienvenidos al mundo del C"); printf (“ Este es mi primer programa en C”); } Prof. Dra. ADDYS DE LAM
31
ELEMENTOS BASICOS IDENTIFICADORES
Nombres de constantes, variables, tipos, funciones y etiquetas de un programa. SINTAXIS: letra/_[letra/dígito/_] cualquier número de caracteres ( 31 significativos). EJEMPLO: suma calculo_promedio _ordenar ab123 Prof. Dra. ADDYS DE LAM
32
ELEMENTOS BASICOS PALABRAS CLAVES
Identificadores predefinidos con significado especial para el compilador C. auto break case char const continue defaul 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 far fortran huge near pascal Las palabras claves deben escribirse en minúscula Prof. Dra. ADDYS DE LAM
33
ELEMENTOS BASICOS CARACTERES DEL C.
Letras mayúsculas: A B C D E F G H I J K L M N O P Q R S T U V W X Y Z Letras minúsculas: a b c d e f g h i j k l m n o p q r s t u v w x y z Dígitos decimales: Carácter de subrayado: _ Carácter de espacio en blanco: espacio,tab,retorno de carro,avance de página,tab vertical y nueva línea. Carácteres especiales y signos de puntuación: , . ; ;: ?’”( ) [ ] { } < ! | / \ ~+ # % & ^ * - = > Prof. Dra. ADDYS DE LAM
34
TIPOS DE DATOS BASICOS:
TIPOS ENTEROS: char, int, short, long, signed, unsigned y enum TIPOS REALES: float, double, long double OTROS TIPOS: poiters, arrays, struct TIPOS ENTEROS char: ( caracter --- 1byte ) enteros de -128 a ASCII unsigned char: valor de 0 a 255 Ejemplo: char car; char abreviación de signed char. Prof. Dra. ADDYS DE LAM
35
int: ( entero) máquina de 16 bits -32768 a 32767
unsigned int a Ejemplo: int n,x; int abreviación de signed int. short: ( entero corto -- 2 bytes ) a 32767 unsigned short a 65535 Ejemplo: short i, j; short abreviación de signed short int long: ( entero largo -- 4 bytes) E31 a 2E31-1 unsigned long a Ejemplo: long n ; long abreviación de signed long int Prof. Dra. ADDYS DE LAM
36
Ejemplo: enum dia_semana { lunes, martes, miercoles,
enum: tipo enumerado. Ejemplo: enum dia_semana { lunes, martes, miercoles, jueves, viernes, sabado, domingo } hoy; enum dia_semana ayer; valor ordinal de lunes es 0. Ejemplo2: enum dia_semana { lunes = 1, martes, miercoles, valor ordinal de martes es 2. Prof. Dra. ADDYS DE LAM
37
TIPO REAL float: (simple precisión -- 4 bytes) hasta 7 dígitos
significativos. negativos: E+38 a E-45 positivos: E a E+38 double: ( doble precisión -- 8 bytes) hasta 15 dígitos negativos : E+38 a E-324 positivos : E-324 a E+308 long double: ( doble precisión largos -- 8 bytes) Precisión extendida -- depende del compilador. Prof. Dra. ADDYS DE LAM
38
TIPOS ADICIONALES DE DATOS
pointers: ( punteros) dirección de memoria que apunta a un objeto. Ejemplo : int *p ; struct: variables que representan registros. Ejemplo: struct { float a, b; } complejo; struct persona char nombre[20]; long dni; }; struct persona reg; Prof. Dra. ADDYS DE LAM
39
union: representan registros variables ( alterna varios tipos ).
Ejemplos; : union tipo_union { char var1; int var2; float var3; }; union tipo_union var_union; arrays: conjunto de objetos del mismo tipo. Ejemplo: int lista[40]; /* lista[0] a lista[39] */ Prof. Dra. ADDYS DE LAM
40
Declaración de variables o parámetros
main() { int entero1, entero2; char caracter1, c, car2; float real1, r2; double d1, d2; short int s; long int entero_largo; unsigned char cc; } Prof. Dra. ADDYS DE LAM
41
NÚMEROS, CARACTER, CADENA DE CARACTERES.
CONSTANTES EN C NÚMEROS, CARACTER, CADENA DE CARACTERES. CONSTANTES ENTERAS: pueden ser de base 10,8,16 Decimal: uno o más dígito ( 0..9), el primero distinto de 0, signo +,-. Ejemplo : Octal: uno o más dígitos ( 0..7), precedidos por 0. Ejemplo: Hexadecimal: uno o más caracteres ( 0..9; A..F), precedidos por 0x o 0X. Ejemplo: x100 Prof. Dra. ADDYS DE LAM
42
Formato: [ dígitos][.dígitos][E/e[+/-]dígitos]
CONSTANTES REALES: Formato: [ dígitos][.dígitos][E/e[+/-]dígitos] dígitos: E/e: símbolo de exponente Ejemplos: , E3, e-3, CONSTANTES DE UN SOLO CARACTER: Encerradas entre ‘ ‘ ( comillas simples) Ejemplos: ‘ ‘ , ‘x’, ‘\n’ CONSTANTES DE CARACTERES: Encerradas entre “ “ ( comillas dobles). Ejemplos: “ Entre un numero” - “ Esta cadena de caracteres es dema\ siado larga” - printf (“Primera cadena,” “Segunda cadena”); Prof. Dra. ADDYS DE LAM
43
SECUENCIA DE ESCAPE DE C Representan caracteres no imprimibles
CARACTER SECUENCIA VALOR ASCI Sonido (bell) \a Backspace \b Tab horizontal \t Tab vertical \v Nueva línea \n Form feed \f Retorno del carro \r Comillas (“) \” Apóstrofo (‘) \’ Interrogación ( ?) \? Backslash ( \ ) \\ Nulo \ d=dígito octal \ddd h=dígito hexadecimal \xhh x ó X Ejemplo: letra ‘A’ = 065 ASCII = \’101’ octal = \’x41’ Prof. Dra. ADDYS DE LAM
44
CONSTANTES SIMBOLICAS:
Nombre que sustituye una secuencia de caracteres ( constante numérica, carácter, cadena de caracteres). Cuando el programa se compila, las constantes simbólicas se reemplazan por su correspondiente secuencia de caracteres. Se definen al comienzo del programa. Formato: #define Nombre Texto - Nombre representa un nombre simbólico. - Texto representa la secuencia de caracteres asociada al nombre. - No se coloca ; al final ya que no es una verdadera sentencia de C. Prof. Dra. ADDYS DE LAM
45
CONSTANTES SIMBOLICAS:
Ejemplo: #define INTERES 0.23 #define PI #define CIERTO #define AMIGA “Marta” { ………. area = PI *radio*radio area = *radio*radio } Prof. Dra. ADDYS DE LAM
46
COMO NOMBRAR CONSTANTES CON EL MODIFICADOR CONST
Cuando inicializamos una variable dentro de una declaración, podemos marcar la variable de modo que el programa no pueda alterar su valor. Por ello, anteponemos la palabra const a la declaración. Const es un modificador de las variables que se declaran.A estás variables se les conoce como constantes declaradas. SINTAXIS: Const nombre_de_tipo nombre_variable = constante; Ejemplo const double PI = ; const int N_PROV = 9; Prof. Dra. ADDYS DE LAM
47
Prof. Dra. ADDYS DE LAM
48
Prof. Dra. ADDYS DE LAM
49
Prof. Dra. ADDYS DE LAM
50
Prof. Dra. ADDYS DE LAM
51
Prof. Dra. ADDYS DE LAM
52
Prof. Dra. ADDYS DE LAM
53
Prof. Dra. ADDYS DE LAM
54
Prof. Dra. ADDYS DE LAM
55
Prof. Dra. ADDYS DE LAM
56
Prof. Dra. ADDYS DE LAM
57
Prof. Dra. ADDYS DE LAM
58
Prof. Dra. ADDYS DE LAM
59
Prof. Dra. ADDYS DE LAM
60
Prof. Dra. ADDYS DE LAM
61
Operador ? int main() { int a,b=2,c=3; a= b>0 ? c : c+1;
/* Equivalente a if(b>0) a=c; else a=c+1; */ } Prof. Dra. ADDYS DE LAM
62
Prof. Dra. ADDYS DE LAM
63
ENTRADA Y SALIDA DE DATOS
Funciones: getchar, putchar, scanf, printf, gets, y puts. ENTRADA DE UN CARÁCTER……… LA FUNCION: getchar. Entrada de carácter uno a uno. Devuelve un carácter leído del dispositivo de entrada estándar. Es parte de la biblioteca estándar. (stdio.h) FORMATO: Variable de carácter = getchar(); Ejemplo: char c; ……. c= getchar(); Prof. Dra. ADDYS DE LAM
64
SALIDA DE UN CARÁCTER ……….. LA FUNCION : putchar
Visualizar un carácter. Transmitir un carácter al dispositivo de salida estándar. Es parte de la biblioteca estándar. (stdio.h) FORMATO: putchar (variable de carácter) EJEMPLO: char c; ……. putchar (c); Prof. Dra. ADDYS DE LAM
65
ENTRADA DE DATOS …. LA FUNCIÓN scanf
Introducir datos procedentes del dispositivo de entrada estándar. Introducir cualquier combinación de valores numéricos, caracteres sueltos y cadenas de caracteres. FORMATO: scanf (cadena de control, arg1, arg2, ……, arg n) Cadena de control: cadena de caracteres que contienes cierta información sobre el formato de los datos. Arg1, arg2,….., arg n: representan los datos. (punteros que indican las direcciones de memoria en donde se encuentran los datos). Prof. Dra. ADDYS DE LAM
66
CARACTERES DE CONVERSIÓN
Carácter de conversión Significado c El dato es un carácter. d El dato es un entero decimal. e El dato es un valor en coma flotante. f El dato es un val or en coma flotante. g h El dato es un entero corto. i El dato es un entero decimal, octal o hexadecimal. o El dato es un entero octal. s El dato es una cadena de caracteres (carácter nulo al final) u El dato es un entero decimal sin signo. x El dato es un entero hexadecimal. [… ] El dato es una cadena de caracteres que pueden incluir caracteres de espaciado. Prof. Dra. ADDYS DE LAM
67
EJEMPLO: #include<stdio.h> main() { char letras [20];
int entero; float coste; …… scanf(“%s %d %f”, letras, &entero,&coste); } EJECUCIÓN: velocidad ó velocidad ó velocidad 0.05 Prof. Dra. ADDYS DE LAM
68
Nota: Cada nombre de variable debe ser precedido por un ampersand(&).
Los nombres de arrays no deben ser precedidos por &. Conversión de caracteres tipo s: cadena que no incluye espacio en blanco. Prof. Dra. ADDYS DE LAM
69
ENTRADA DE DATOS …. LA FUNCIÓN scanf
Introducir cadena de caracteres EJEMPLO: #include<stdio.h> { char linea[80]; ….. scanf(“%[ ABCDEFGHIJKLOPQRSTUVXZ]”, linea); } EJECUCIÓN: FIN DE SEMANA Se le asigna al array linea toda la cadena de caracteres. Observe que se acepta espacios en blancos, primer carácter la cadena de control[]. Fin de Semana Se le asigna al array linea solo la letra F Prof. Dra. ADDYS DE LAM
70
#include<stdio.h> main() { char linea[80]; …..
EJEMPLO 2: #include<stdio.h> main() { char linea[80]; ….. scanf(“%[^\n]”, linea); } Se leerá una cadena de caracteres de longitud no determinada (no más de 79) y se asignará a línea. Prof. Dra. ADDYS DE LAM
71
ESPECIFICACIOINES DE LONGITUD DE CAMPO: Limita el número de los caracteres especificando una longitud de campo máxima para el dato. EJEMPLO: #include<stdio.h> main() { char linea[80]; ….. scanf(“%3d %3d %3d”, &a, &b, &c); } EJECUCIÓN: entonces a=1 , b=2, c =3 entonces a=123, b=456, c =789 entonces a=123, b=456, c =789 entonces a=123, b=4, c =567 Prof. Dra. ADDYS DE LAM
72
Prof. Dra. ADDYS DE LAM
73
Prof. Dra. ADDYS DE LAM
74
Prof. Dra. ADDYS DE LAM
75
Prof. Dra. ADDYS DE LAM
76
Obtener el promedio de tres valores dados por el usuario
EJEMPLOS DE PROGRAMAS EN C Obtener el promedio de tres valores dados por el usuario PROGRAMA EN C #include <stdio.h> main() { /*Declaraciones*/ int v1,v2,v3; float prom; /* Solicita valores de entrada */ printf(“Entre los tres valores”); scanf (“%i %i %i”,&v1,&v2,&v3); /* Calculo del promedio */ prom = (v1+v2+v3)/3; /* Salida de resultados */ printf (“\n \t valor1 \t valor2 \t valor3 \t Promedio \n”); printf (“\t %i \t %i \t %i\t %.2f ”,v1,v2,v3,prom); } ALGORITMO INICIO /*DECLARACIONES*/ ENTEROS : V1,V2,V3 REAL: PROM /*SOLICITA VALORES DE ENTRADA */ VISUALIZAR (“ENTRE LOS TRES VALORES “) LEER (“%i%i%i”,V1,V2,V3) /* CALCULO DEL PROMEDIO */ PROM (V1+ V2+ V3)/3 /*SALIDA DE LOS RESULTADOS */ VISUALIZAR (“VALOR 1 VALOR 2 VALOR PROMEDIO”) VISUALIZAR (“%i%i%i%f”,V1,V2,V3,PROM) FIN Prof. Dra. ADDYS DE LAM
77
Prof. Dra. ADDYS DE LAM
78
OTRA FORMA DE SOLUCION DEL PROBLEMA
printf (“Entre su nombre:”); scanf (“%[^\n]”,nombre); printf (“\n\nNombre: %-s\n\n”,nombre); Prof. Dra. ADDYS DE LAM
79
Programa #include <stdio.h> main() {
/*Declaracion de variables*/ int a,b,c; /*Entrada de los valores*/ printf (“Entre dos valores:”); scanf (“%i %i”, &a, &b); /*Calculo de la suma*/ c=a+b; /*Salida de resultados*/ printf(“La suma de %i + %i es: %i”, a,b,c); } Prof. Dra. ADDYS DE LAM
Presentaciones similares
© 2024 SlidePlayer.es Inc.
All rights reserved.