Download algoritmo, estructuras y programación ii

Document related concepts

Programación funcional wikipedia , lookup

Logo (lenguaje de programación) wikipedia , lookup

Rust (lenguaje de programación) wikipedia , lookup

Racket (lenguaje de programación) wikipedia , lookup

Lisp wikipedia , lookup

Transcript
OBJETIVO II: DEFINIR LOS ELEMENTOS BÁSICOS
DEL LENGUAJE C.
ESTRUCTURAS DE DATOS
E-mail: [email protected]
http://yesikamedina.wordpress.com
Prof.Yesika Medina
UNIDAD II: FUNDAMENTOS DE LA PROGRAMACIÓN
ESTRUCTURADA.
 Lenguajes de programación.
 Programación estructurada.
 Lenguaje C.
 Instrucciones de Condición, Simple, Anidada.
 Bibliotecas stdio.h, conio.h, stdlib.h, math.h
LENGUAJES DE PROGRAMACIÓN.
Un programa se escribe en un lenguaje de programación y las operaciones que conducen a
expresar un algoritmo en forma de programa se llaman programación. Así pues, los lenguajes
utilizados para escribir programas de computadoras son los lenguajes de programación y
programadores son los escritores y diseñadores de programas.
Los principales tipos de lenguajes utilizados en la actualidad son tres:
 Lenguajes máquina.
 Lenguaje de bajo nivel (ensamblador).
 Lenguajes de alto nivel.
UNIDAD II: FUNDAMENTOS DE LA PROGRAMACIÓN
ESTRUCTURADA.
.
 LENGUAJES MÁQUINA. son aquellos que están escritos en lenguajes directamente
inteligibles por la máquina (computadora), ya que sus instrucciones son cadenas binarias
(cadenas o series de caracteres-dígitos- O y 1) que especifican una operación, y las
posiciones (dirección) de memoria implicadas en la operación se denominan
instrucciones de máquina o código máquina. El código máquina es el conocido código
binario.
 LENGUAJE DE BAJO NIVEL (ENSAMBLADOR). son más fáciles de utilizar que
los lenguajes máquina, pero, al igual, que ellos, dependen de la máquina en particular. El
lenguaje de bajo nivel por excelencia es el ensumhlacfor (assembly languuje). Las
instrucciones en lenguaje ensamblador son instrucciones conocidas como nernotécnicos
(mnemonics). Por ejemplo, nemotécnicos típicos de operaciones aritméticas son: en
inglés, ADD, SUB, DIV, etc.; en español, SUM, RES, DIV, etc.
LENGUAJES DE ALTO NIVEL.
Son los más utilizados por los programadores. Están diseñados para que las
personas escriban y entiendan los programas de un modo mucho más fácil que los lenguajes
máquina y ensambladores.
Otra razón es que un programa escrito en lenguaje de alto nivel es independiente
de la máquina; esto es, las instrucciones del programa de la computadora no dependen del
diseño del hardware o de una computadora en particular.
En consecuencia, los programas escritos en lenguaje de alto nivel son portables o
transportables, lo que significa la posibilidad de poder ser ejecutados con poca o ninguna
modificación en diferentes tipos de computadoras; al contrario que los programas en
lenguaje máquina o ensamblador, que sólo se pueden ejecutar en un determinado tipo de
computadora.
Lenguaje C.
C es un lenguaje de programación que contiene excelentes
características como lenguaje para aprendizaje de programación
y lenguaje profesional de propósito general; básicamente es un
entorno de programación con editor y compilador incorporado.
 C es una evolución de los lenguajes BCPL -desarrollado por Martin Richards- y B –
desarrollado por Ken Thompson en 1970- para el primitivo UNIX de la computadora
DEC PDP-7.
 C nació realmente en 1978, con la publicación de The C Programming Languaje, por
Brian Kernighan y Dennis Ritchie (Prentice Hall, 1978). Desde su nacimiento, C fue
creciendo en popularidad y los sucesivos cambios en el lenguaje a lo largo de los años
junto a la creación de compiladores por grupos no involucrados en su diseño, hicieron
necesario pensar en la estandarización de la definición del lenguaje C.
VENTAJAS DEL LENGUAJE C.
 El lenguaje C es poderoso y flexible, con órdenes, operaciones y
funciones de biblioteca que se pueden utilizar para escribir la
mayoría de los programas que corren en la computadora.
 C se utiliza por programadores profesionales para desarrollar software en la
mayoría de los modernos sistemas de computadora.
 Se
puede utilizar C para desarrollar sistemas operativos,
compiladores, sistemas de tiempo real y aplicaciones de
comunicaciones.
 Un programa C puede ser escrito para un tipo de computadora y trasladarse a
otra computadora con pocas o ninguna modificación -propiedad conocida como
portabilidad-. El hecho de que C sea portable es importante ya que la mayoría
de los modernos computadores tienen un compilador C, una vez que se aprende
C no tiene que aprenderse un nuevo lenguaje cuando se escriba un programa
para otro tipo de computadora. No es necesario reescribir un problema para
ejecutarse en otra computadora.
CARACTERISTICAS DEL LENGUAJE C.
 Una nueva sintaxis para declarar funciones. Una declaración de




función puede añadir una descripción de los argumentos de la
función. Esta información adicional sirve para que los compiladores
detecten más fácilmente los errores causados por argumentos que
no coinciden.
Asignación de estructuras (registros) y enumeraciones.
Preprocesador más sofisticado.
Una nueva definición de la biblioteca que acompaña a C. Entre otras
funciones se incluyen: acceso al sistema operativo (por ejemplo,
lectura y escritura de archivos), entrada y salida con formato,
asignación dinámica de memoria, manejo de cadenas de caracteres.
Una colección de cabeceras estándar que proporciona acceso
uniforme a las declaraciones de funciones y tipos de datos.
PROGRAMACIÓN MODULAR
La programación modular es uno de los métodos de diseño más flexible y potentes para
mejorar la productividad de un programa. En programación modular el programa se divide en
módulos (partes independientes), cada una de las cuales ejecuta una Única actividad o tarea y se
codifican independientemente de otros módulos. Cada uno de estos módulos se analizan, codifican y
ponen a punto por separado.
Cada programa contiene un módulo denominado progruma principul que controla todo lo
que sucede; se transfiere el control a submódulos (posteriormente se denominarán subprogramas), de
modo que ellos puedan ejecutar sus funciones; sin embargo, cada submódulo devuelve el control al
módulo principal cuando se haya completado su tarea. Si la tarea asignada a cada submódulo es
demasiado compleja, éste deberá romperse en otros módulos más pequeños.
El proceso sucesivo de subdivisión de módulos continúa hasta que cada módulo tenga
solamente una tarea específica que ejecutar. Esta tarea puede ser entrada, salidu, manipulación de datos,
control de otros módulos o alguna combinación de éstos. Un módulo puede transferir temporalmente
(hifurcur) el control a otro módulo; sin embargo, cada módulo debe eventualmente devolver el control
al módulo del cual se recibe originalmente el control.
Los módulos son independientes en el sentido en que ningún módulo puede tener acceso
directo a cualquier otro módulo excepto el módulo al que llama y sus propios submódulos. Sin
embargo, los resultados producidos por un módulo pueden ser utilizados por cualquier otro módulo
cuando se transfiera a ellos el control.
PROGRAMACIÓN ESTRUCTURADA
Los términos programación modular; programación descendente y programación estructurada se
introdujeron en la segunda mitad de la década de los sesenta y a menudo sus términos se utilizan como
sinónimos aunque no significan lo mismo. La programación modular y descendente ya se ha examinado
anteriormente. La programación estructurada significa escribir un programa de acuerdo a las siguientes reglas:






El programa tiene un diseño modular.
Los módulos son diseñados de modo descendente.
Cada módulo se codifica utilizando las tres estructuras de control básicas: secuencia, selección y
repetición.
Si está familiarizado con lenguajes como BASIC, Pascal, FORTRAN o C, la programación
estructurada significa también progrumación sin GOTO (C no requiere el uso de la sentencia
GOTO).
El término programación estructurada se refiere a un conjunto de técnicas que han ido
evolucionando desde los primeros trabajos de Edgar Dijkstra. Estas técnicas aumentan considerablemente la
productividad del programa reduciendo en elevado grado el tiempo requerido para escribir, verificar, depurar
y mantener los programas. La programación estructurada utiliza un número limitado de estructuras de control
que minimizan la complejidad de los programas y, por consiguiente, reducen los errores; hace los programas
más fáciles de escribir, verificar, leer y mantener. Los programas deben estar dotados de una estructura.
La programación estructurada es el conjunto de técnicas que incorporan:



recursos abstractos,
diseño descendente (top-down),
estructuras básicas.
UNIDAD II: FUNDAMENTOS DE LA PROGRAMACIÓN
ESTRUCTURADA.
IDENTIFICADORES
Un identificador es una secuencia de caracteres, letras, dígitos y subrayados (_). El primer
carácter debe ser una letra (algún compilador admite carácter de subrayado). Las letras
mayúsculas y minúsculas son diferentes.
nombre-clase
a
Indice
Habitacionl20
elementomayor
Dia_Mes_Anyo
Cantidad-Tota
Fecha-Compra-Casa
En Borland C/C++ el identificador puede ser de cualquier longitud; sin embargo, el compilador ignora cualquier
carácter fuera de los 32 primeros.
C es sensible a las mayúsculas. Por consiguiente, C reconoce como distintos los identificadores ALFA, al f a y ALFa.
(Le recomendamos que utilice siempre el mismo estilo d escribir sus identificadores.) Un consejo que puede servir de posible
regla puede ser:
1. Escribir
identificadores de variables en letras minúsculas.
2. Constantes en mayúsculas.
3. Funciones con tipo de letra mixto: mayúsculdminúscula.
Reglas básicas de formación de identificadores
1. Secuencia de letras o dígitos; el primer carácter puede ser una letra o un subrayado.
2. Los identificadores son sensibles a las mayúsculas: . minun es distinto de MiNum .
3. Los identificadores pueden tener cualquier longitud, pero sólo son significativos los 32.
4. Los identificadores no pueden ser palabras reservadas, tales como if, switch o else.
Palabras reservadas
Una palabra reservada (keyword o resewed word), tal como
void es una característica del lenguaje C , asociada con
algún significado especial. Una palabra reservada no se
puede utilizar como nombre de identificador o función.
void void( ) / * error * /
...
int char; / * error * /
...
Los siguientes identificadores están reservados para utilizarlos como palabras
reservadas, y no se
deben emplear para otros propósitos.
asm
enum
signed
auto extern
sizeof break float static
Case
for
struct char
goto
switch
const if
typedef Continue default
do double
else
int
unio long
unsigned register void return
vol at i 1 e short while
Comentarios
Ya se ha expuesto antes que los comentarios en C tienen el
formato:
/*...*/
Los comentarios se encierran entre / * y * / pueden
extenderse a lo largo de varias líneas.
/ * Titulo: Demo-uno por Mr. Martinez * /
Otra forma, el comentario en dos líneas:
/ * Cabecera del programa text-uno
Autor: J.R. Mazinger * /
Signos de puntuación y separadores
Todas las sentencias deben terminar con un punto y coma.
Otros signos de puntuación son:
! % & * o - + = { } - [ ] \ ;‘ : < > ? , . / I /‘
Los separadores son espacios en blanco, tabulaciones,
retornos de carro y avances de línea.
Archivos de cabecera
Es un archivo especial que contiene declaraciones de
elementos y funciones de la biblioteca. Para utilizar macros,
constantes, tipos y funciones almacenadas en una biblioteca, un
programa debe utilizar la directiva #include para insertar el
archivo de cabecera correspondiente.
Por ejemplo, si un programa utiliza la función pow que se
almacena en la biblioteca matemática math.h,debe contener la
directiva
#include <math.h>
para hacer que el contenido de la biblioteca matemática esté
disponible a un programa. La mayoría de los programas contienen
líneas como ésta al principio, que se incluyen en el momento de
compilación.
#include <stdio.h>
#include "stdio. h"
DIRECTIVAS DEL PREPROCESADOR
El preprocesador en un programa C se puede considerar como un editor de
texto inteligente que consta de directivas (instrucciones al compilador antes de que se
compile el programa principal). Las dos directivas más usuales son
#include y #define.
Todas las directivas del preprocesador comienzan con el signo de libro o
«almohadilla>>(# ), que indica al compilador que lea las directivas antes de compilar la parte
(función) principal del programa. Las directivas son instrucciones al compilador. Las directivas no
son generalmente sentencias, obsérvese que su línea no termina en punto y coma-, sino
instrucciones que se dan al compilador antes de que el programa se compile. Aunque las directivas
pueden definir macros, nombres de constantes, archivos fuente adicionales, etc., su uso más
frecuente en C es la inclusión de archivos de cabecera.
Existen archivos de cabecera estándar que se utilizan ampliamente, tales como STDIO . H, STDLIB .
H, MATH. H, STRING. H y se utilizarán otros archivos de cabecera definidos por el usuario para diseño
estructurado.
La directiva #include indica al compilador que lea el archivo fuente que viene a continuación de
ella y su contenido lo inserte en la posición donde se encuentra dicha directiva. Estos archivos se denominan
archivos de cubecera o archivos de inclusión.
Los archivos de cabecera (archivos con extensión . h contienen código fuente C) se sitúan en un
programa C mediante la directiva del preprocesador #include con una instrucción que tiene el
siguiente formato : #include <nombrearch. h> O bien #include "nombrearch.h"
TIPOS DE DATOS
Especificadores de Formatos.
Secuencias de Escape.
UNIDAD II: FUNDAMENTOS DE LA PROGRAMACIÓN
ESTRUCTURADA.
COMENTARIOS
Un comentario es cualquier información que se añade a su archivo fuente para
proporcionar documentación de cualquier tipo. El compilador ignora los comentarios, no realiza
ninguna tarea concreta. El uso de comentarios es totalmente opcional, aunque dicho uso es muy
recomendable.
Generalmente, se considera buena práctica de programación comentar su archivo
fuente tanto como sea posible, al objeto de que usted mismo y otros programadores puedan leer
fácilmente el programa con el paso de tiempo. Es buena práctica de programación comentar su
programa en la parte superior de cada archivo fuente. La información que se suele incluir es el
nombre del archivo, el nombre del programador, una breve descripción, la fecha en que se creó
la versión y la información de la revisión.
Los comentarios en C estándar comienzan con la secuencia / * y terminan con la secuencia * /.
Todo el texto situado entre las dos secuencias es un comentario ignorado por el compilador.
/* PRUEBA1.C - Primer programa C * /
Si se necesitan varias líneas de programa se puede hacer lo siguiente:
/*
Programa : PRUEBA1.C
Programador : Pepe Mortimer
Descripción : Primer programa C
Fecha creación : Septiembre 2000
Revis iÓn : Ninguna
*/
También se pueden situar comentarios de la forma siguiente: scanf ("%d" , &x) ; / * sentencia de
entrdda de un valor entero*/.
EJEMPLO.
#include <stdio.h>
/ * Este programa imprime: Bienvenido a la programación en
C*/
int main()
{
printf("Bienvenid0 a la programación en C\n");
return O;
}
OBJETIVO III. APLICAR A LOS PROGRAMAS EN C LAS
ESTRUCTURAS DE SELECCIÓN IF Y SWITCH
ESTRUCTURAS DE DATOS
E-mail: [email protected]
http://yesikamedina.wordpress.com
Prof.Yesika Medina
Programas. Diseñarlos en algoritmos y diagrama de flujo. Codificarlo en lenguaje C:
documentar cada línea de codigo, cambiarle el color a la consola y a la fuente, mostrar
el titulo del programa en la consola
1.
2.
3.
4.
5.
6.
7.
8.
9.
Escribir un programa que lea un entero, lo multiplique por 2, y
muestre el resultado en pantalla.
Escribe un programa que permita multiplicar 3 valores.
Codificar un programa que permita calcular el promedio de cuatro
calificaciones.
Escribir un programa que solicite al usuario la longitud y la anchura
de una habitación y a continuación visualice su superficie con cuatro
decimales.
Escriba un programa para calcular la longitud de la circunferencia y
el área del circulo para un radio introducido desde el teclado.
Codificar un programa que determine el mayor de dos números.
Escribir un programa que dibuje un rectángulo.
Escribir un programa que lea dos números enteros y comprueba cual
es el valor del resto de la división.(if(n%d==0)
Escribir un programa que permita introducir un numero positivo o
negativo y muestre un mensaje if(numero=0) if(numero<0)
if(numero>0) .
SENTENCIA SWITCH
Es una sentencia C que se utiliza para seleccionar
una de entre múltiples alternativas. La sentencia
SWITCH es especialmente Útil cuando la selección
se basa en el valor de una variable simple o de una
expresión simple denominada expresión de
control o selector. El valor de esta expresión
puede ser de tipo INT o CHAR, pero no de tipo
FLOAT ni Double.
“Nunca consideres el estudio como una
obligación, sino como una oportunidad
para involucrarte en el bello y
maravilloso mundo del saber.”