You are on page 1of 123

Universidad Autónoma del Estado de México

Facultad de Ingeniería
Programación básica

DEL CURSO
Las computadoras se clasifican en tres por su señal:

 Analógicas

 Digitales

 Hibridas

 Trabajan con señales continuas.

 Fenómenos físicos (aplicaciones).


Analógicas
 Aplicaciones específicas.

 Costo elevado.

 ∫d(x)

 Trabajan en tiempo real = ó casi 0.


 Señal discontinua.

 Aplicaciones generales.
Digitales
 Costo accesible.

 Operaciones (+ y -).

 Trabajan en tiempo no real.

 Combinación de computadoras de los tipos analógicos y digitales.


Hibridas

Por su tamaño las computadoras se clasifican en:


Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Supercomputadoras >$, >tamaño, varios o muchos procesadores y


procesamiento en paralelo.
Macrocomputadoras

Minicomputadoras
<costo, <usuarios, procesamiento secuencial, y un
Microcomputadoras microprocesador.

Microcomputadora

Tarea 1 Tarea 2 Respuesta de tarea 1

MP

Macrocomputadora

Tarea 1 Respuesta de tarea 1


MP

Tarea 2 Respuesta de tarea 2


MP

Tarea 3 Respuesta de tarea 3


MP
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

COMPUTADORA.- Dispositivo electromecánico capaz de resolver tareas a muy alta


velocidad.

PRINCIPALES COMPONENTES DE UNA COMPUTADORA

CPU (central processing Procesador central


unit) Registros de propósito general
Memoria (principal y secundaria)

Hardware Unidades periféricas ó Entrada.- teclado, mouse, lápiz óptico, micrófono,


cámara, escáner, joystick, lector óptico etc.
Unidades E/S
(Hw)
(Entrada/Salida) ó Salida.- monitor, bocinas, impresora, plotter, fax,
cañón etc.
Unidades I/O
(Input/Output)

Firmware (Fw) Parte intermedia entre Hardware y Software

Microprogramas. Rutinas de BIOS en la ROM.

Sistemas Operativos Windows (Net, 95, 98, 2000, Millenium, Vista, XP, 7),
(Operating System). Linux, Mac, Fedora, Ubuntu, PLC (escalera e instrucción)

Programas de aplicación del


usuario.
Software
Paquetería.
(Sw)
Bases de datos.

Lenguaje de programación. Java, Delphi, Cobol, C++, Ada, Basic, Pascal, Fortran, PLC
(compiladores e intérpretes)

RAM (memoria ROM Memoria


MP principal) BIOS Secundaria.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

AÑO AUTOR INVENTO CARACTERÍSTICAS


600 A.C. Tales de Mileto Electricidad estática

Dedos de las
manos.
5000 A.C. Romanos Piedras (calculus)
2500 A.C. Chinos Ábaco.
1519 Leonardo da Vinci Sumadora Utilización de engranes.
mecánica
1300 -1500 Incas Cuentas
1614 John Napier, inventor de Estructuras de
los logaritmos naturales. Napier.
1623 Wilhelm Shickard Primer mecanismo
de calculadora.
1642 Blaise Pascal La pascalina. Calculadora mecánica de
ruedas dentadas que
sumaba y restaba.
1663 William Ougthred Los círculos de Basado en las estructuras
proporción y de Napier, podía realizar
posteriormente productos, cocientes,
conocida como logaritmos, exponentes,
regla del cálculo. funciones trigonométricas
y funciones matemáticas.
1666 Samuel Morlan Primera máquina
multiplicadora
(series 10,100)
1671 Gottfried Wilhelm von Calculadora Podía realizar sumas,
Leibnitz universal. restas, multiplicaciones y
Stepped Reckoner divisiones, incluye como
mecanismo la regla
escalonada de Leibnitz,
además se le atribuye la
creación de una máquina
que utilizaba el sistema
binario.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Joseph Marie Jacquard Telar de Jacquard. Utiliza una tarjeta


1790 perforada para el diseño
de la tela.
1821 Charles Babbage (padre Máquina Podía resolver polinomios
de la computadora) diferencial. utilizando el método de
diferencias.
1833 Charles Babbage Máquina analítica. Usa tarjetas perforadas,
establece completamente
los principios de la
computadora actual,
mejorando la máquina de
diferencias, podía evaluar
un amplio intervalo de
funciones diferentes.
Ada Augusta Lovelace Ciencia de la
Madre de la programación.
programación.
1872 Kelvin Galvanómetro. Representa gráficamente
las mareas.
1890 Herman Hollerith Máquina tabular Incluía el uso de tarjetas
Funda Tabulating perforadas, implementó el
Machine Co. Que código Hollerith y fue
después sería IBM utilizada para el censo de
(International 1890 en U.S.
Business
Machines).
1897 Karl Braun Tubo de rayos
catódicos.
1906 Lee De Forest Tubo de vacío El
"Audion",
1919 IBM Máquinas
electromecánicas
de contabilidad.
1924 Julios Edgar Lilienfeld Condensador
electrolítico y
transistor de efecto
de campo FET.
1924 Walther Bothe Compuerta AND.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

1930 Kelvin / Vannevar Desarrollan el Computadora analógica de


analizador propósito general.
diferencial.
1931 Konrad Zuse Z1
1938 William Hewlett y David Fundan compañía
Packard HP.
1939 John Vincent Atanasoff Calculadora Resuelve ecuaciones
electrónica simultáneas de hasta 29
automática. incógnitas, incorpora la
base binaria en vez de
decimal y desarrolla una
máquina regenerable.
Atanasoff y Calculadora ABC. Utilizada para cálculos de
Clifford Física, utilizaba tubos de
Berry vacío, base binaria, e
incluía circuitos de
memoria y de lógica.
1939 George Stibnitz / Samuel Complex Number Precursor del modem. 1ra
Williams Computer. generación de
computadoras.
1942 Konrad Zuse Z3 Primer computadora
electromagnético. Cinta
perforada
1943 Equipo de Alan Turing Colossus. 1500 bulbos, 100%
operativa y realizó la 1era.
decodificación de
mensajes enemigos.
1943 Howard Aiken ASCC.
1944 Howard Mark 1 Usaba relés o relevadores.
Universidad de
Harvard.
1947 John Mauchly y John ENIAC 1ra computadora
Eckert Electronic Numeric electrónica 18000 bulbos,
Integrator And 10000 capacitores, 7000
Calculator. resistencias.
Universidad de Consumía 200 Kw de
Pennsylvania energía, podía realizar
5000 operaciones
aritméticas por segundo.
Contaba con un sistema de
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

enfriamiento propio y se
programaba “a mano”.
Pesaba aprox.30
toneladas.
1949 John Von Neuman EDVAC 4000 bulbos, memoria
Electronic basada en tubos de
Aporta el concepto de Discrete mercurio con retardos de
PROGRAMA ALMACENADO Variable señal.
Automatic
Computer.

EDSAC Utilizaba transistores en


Electronic vez de válvulas,
Digital almacenamiento y sistema
Storage de entrada.
Automatic
Computer.
1951 Mauchly y Eckert Desarrollan la Primera computadora
UNIVAC short comercial. Almacenaba
code. 1000 palabras de memoria
central. Tenía lectoras de
cinta magnética.

Cuestionario:

1. ¿Qué significa IBM?


2. Significado UNIVAC
3. Creador de la primera calculadora mecánica.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

GENERACIÓN DE LAS COMPUTADORAS

Primera Generación (1948-1955)


 Utilizaban tubos de vacío (bulbos) para procesar información.
 Empleaban tarjetas perforadas para introducir los datos y los programas.
 Uso de cilindros o tambores magnéticos para almacenar información e instrucciones
internas.
 Eran sumamente grandes, utilizaban gran cantidad de electricidad, generaban gran
cantidad de calor, eran sumamente lentas y costosas.
 Se comenzó a utilizar el sistema binario para representar los datos. Programación en
lenguaje máquina, series de 1´s y 0´s (“a mano”).
 Se utilizaron relevadores electromecánicos (como en la MARK 1).
 Poca confiabilidad, usadas en grandes empresas o universidades.
 ENIAC, UNIVAC I, IBM 701

Segunda Generación (1955-1964)


 En 1950, John Bardee, Walter Brattain y William Shockley construyen la primera
computadora transistorizada (se incorpora el transistor).
 1 transistor = 200 bulbos
 Se programaban utilizando cintas y tarjetas perforadas.
 Utilizaban redes de núcleos magnéticos en lugar de tambores giratorios para el
almacenamiento primario.
 En 1957, John Backus crea el lenguaje de alto nivel “FORTRAN” (FORmula
TRANslator), utilizado en la investigación científica, las matemáticas y la ingeniería.
 En 1960, Grace Murray crea el lenguaje COBOL (COmmon Business Oriented
Language, lenguaje común orientado a negocios).
 Ada, ALGOL (Algorithmic Language)
 Se comienza a disminuir el tamaño y costo de las computadoras.
 Mayor rapidez
 Minicomputadoras y terminales a distancia.
 TX-0, PDP-1, PDP-8, IBM 7090, IBM 7094.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Tercera Generación (1964-1971)


 Se desarrollaron circuitos integrados para procesar información.
 Se desarrollaron los "chips" (por Jack St.Claire y Robert Noire) para almacenar y
procesar la información. Un "chip" es una pieza de silicio que contiene los
componentes electrónicos en miniatura en un material llamado “semiconductor”. Los
circuitos integrados recuerdan los datos ya que almacenan la información como
cargas eléctricas.
 Se crean lenguajes como PASCAL y BASIC(Begineers All Pourpose Instruction Code).
 Se calcula PI con 500 decimales.
 Las computadoras pueden llevar a cabo ambas tareas de procesamiento o análisis
matemáticos.
 Teleproceso, terminales,
 Las computadoras se tornan más pequeñas, más ligeras y más eficientes.
 Consumían menos electricidad, por lo tanto, generaban menos calor.
 Se produce el microprocesador 4004.
 Manejo por medio de lenguajes de control de los sistemas operativos (MSDOS).
 Se desarrollan las minicomputadoras IBM 360, DEC, PDP-1, PDP-8, PDP-11.

Cuarta generación (1971-1983)


 Se desarrolló el microprocesador (es un conjunto de circuitos integrados de alta
densidad y de gran velocidad). Producto de la miniaturización de los CI
 El microprocesador fabricado por la empresa Intel Corporation se conoce como “ Intel
4004” (4 bits).
 El término PC fue usado por primera vez por IBM, y adoptado por los demás
fabricantes posteriormente.
 8080 se crea en 1974. Contenía 4500 transistores y ejecutaba 200,000 ops/sg.
 Gary Kindall creó el CPM (programa de control para computadora).
 Se colocan más circuitos dentro de un chip, cada chip realiza distintas tareas.
 Se reemplaza la memoria de anillos magnéticos por la memoria de "chips" de silicio.
 Se desarrollan las supercomputadoras y las microcomputadoras, debido al tamaño
reducido del microprocesador y de chips.
 Se usan los CD´s.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Quinta Generación (1983-1990)


 Surge en 1983 con el ¨reto japonés”. Nombrada como la generación de la IA.
 En 1982, Seymour Cray crea la primera supercomputadora con capacidad de
procesamiento en paralelo (se lleva a cabo en computadoras que tienen la
capacidad de trabajar simultáneamente con varios microprocesadores). Y cuya
unidad de velocidad son los MFlops.
 En el mismo año, el gobierno japonés anuncia el proyecto” inteligencia artificial”
para que las computadoras puedan reconocer voz e imagen y se comuniquen en
lenguaje natural.
 Surge la microelectrónica, el software para actividades profesionales y la
estructura cliente-servidor.
 El almacenamiento de información se realiza en dispositivos magneto-ópticos
con capacidades de decenas de Gigabytes; se establece el DVD (Digital VideoDisk
o Digital Versatile Disk) como estándar para el almacenamiento de video y
sonido.
 Nuevos lenguajes de programación LISP, PROLOG
 Reconocimiento de patrones, realidad virtual, robótica, inteligencia artificial,
lenguaje natural.
 Ejem. Familia Cray.

Sexta Generación (1990-Actualidad)


 Era de las computadoras inteligentes.
 Cuentan con arquitecturas combinadas Paralelo / Vectorial, con cientos de
microprocesadores vectoriales trabajando al mismo tiempo. División de tareas.
 Se han creado computadoras capaces de realizar más de un millón de millones de
operaciones aritméticas de punto flotante por segundo (teraflops).
 Crecen las redes de área mundial (Wide Area Network, WAN).
 Se perfeccionan las fibras ópticas (material que se compone de delgadas fibras de
vidrio y se utiliza para transmitir datos a gran velocidad).
 Se desarrolla la holografía (imagen generada en un espacio tridimensional,
generalmente con el uso de rayo láser).
 Expansión de las redes WAN, con anchos de banda impresionantes.
 Inteligencia artificial distribuida.
 Teoría del caos.
 Sistemas difusos.
 Transistores ópticos.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

 Clusters (SETI)

Aspectos y Primera Segunda Tercera generación Cuarta generación Quinta Sexta


Generación generación Generación (1964-1971) (1971-1983) generación generación
(1951-1958) (1958-1964) (1983-1989) (1989-actualidad)

Componente Tubos al vacío Transistor (200 Circuitos Integrados Microprocesador Multiprocesador, Microprocesador
básico (bu transistores (C.I) (Chips). (microcomputadora procesamiento con arquitectura
lbos). ocupaban el s). paralelo (varias paralelo /
espacio de un tareas). vectorial.
bulbo).

Memoria Memoria de Memoria de Memoria de Memoria de chips Memoria RAM de Memoria RAM de
tambores núcleos circuitos integrados de silicio. 64 a 128 Kb. 256 a 512 Kb.
magnéticos. magnéticos. (64 kilobytes).
Lenguaje Lenguaje COBOL/FORTRAN Lenguaje de GUI: Graphic User Lenguaje natural Se ocupa el
máquina BASIC/ADA/PASCA sistemas operativos Interface PROLOG. ACTIVE VOICE (le
(binario) a L. (Instrucciones). Procesador de dictas a la
mano. textos, base de computadora en
datos (Office). lenguaje natural).
Medios de Utilizan cintas Cintas magnéticas. Discos magnéticos. Discos magnéticos Discos magneto- Discos duros
almacenamient y tarjetas (8”, 5 ¼ “, 3 ½ “) CD ópticos, ópticos externos,
o perforadas. (compact disk). CD, DVD. Memoria USB.
Características Grandes, Mayor velocidad y Disminución de Robótica, redes Fibra óptica (se
costosas y menor generación tamaño y costo. Se minimizan los neuronales, utiliza para
generaban de calor. Tele proceso circuitos, aumenta sistemas transmitir datos).
mucho calor, (antecedente de la capacidad de expertos, Biomédica.
lo que implica Internet). almacenamiento. reconocimiento Redes de área
un sistema de Multitarea, de patrones, mundial (WAN).
enfriamiento multiprogramación Reducen el tiempo redes de Miles de
propio. y tiempo de respuesta. comunicación, operaciones de
compartido. algoritmos punto flotante
genéticos, por segundo.
realidad virtual.
Reto japonés(A.I.)
Características Tenían Necesitaban GRUPO DE Elaboración Holografía
aplicaciones todavía sistemas CONSTRUCTORES Gran expansión del inteligente del (imagen generada
específicas y de enfriamiento DE uso de las saber y número en un espacio
solo grandes pero podían estar COMPUTADORAS Computadoras. tratamiento de tridimensional,
empresas más tiempo BUNCH : datos. generalmente
Memorias
tenían acceso operando. Burroughs/ Univac / con el uso de rayo
a ellas. NCR/ CDC/ electrónicas más Máquinas láser).
Honeywell. rápidas. activadas por la Aplicaciones de
voz que pueden redes neuronales
Sistemas de
responder a o artificiales.
tratamiento de
palabras habladas
bases de datos. en diversas
lenguas y
dialectos.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Ejemplos UNIVAC 1 IBM 7090 /UNIVAC IBM 360-370 / CDC Intel 8086 (Primero Código de barras, Monitores
IBM 701 M460 / RCA 501 /PDP-11/UNIVAC fue el 4040) reconocimiento Touchscreen.
MARK 1 110- 1110 / TLP 8 Motorola 68028 de patrones.
COLOSSUS (Primero el 6800).

Cuestionario:

1. ¿Cuál es la primera computadora programable?


2. ¿En qué consiste el lenguaje máquina?
3. ¿Cuál es la primera computadora comercial?
4. Menciona un lenguaje de programación de alto nivel de la 2ª. Generación.
5. Menciona un ejemplo de las aplicaciones realizadas.
6. ¿Cuántos transistores equivalen a un tubo al vacío?
7. ¿Quién inventó el CI?
8. Menciona dos características de esta generación.
9. ¿Cuál fue el primer miniordenador de la 3ª. Generación?
10. ¿Qué es un µ?
11. ¿Cuál fue el primer µ?
12. ¿Quién fue el diseñador del CPM?
13. ¿Quien creó la primer súpercomputadora?
14. ¿Cómo funcionan los µ?
15. ¿Qué significa DVD?
16. ¿Qué es un Teraflop?
17. ¿Cuál es el avance que tenemos actualmente de la sexta generación?
18. Menciona un ejemplo de un procesador paralelo vectorial.
19. Indica tres ejemplos de reconocimiento de patrones.
20. Menciona los nombres de los robots más recientes, en dónde fueron creados y por quien.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

CONCEPTOS BÁSICOS
bit: Binary digit/Dígito binario: mínima unidad de información que puede representar una
computadora, es un “0” ó un “1”.

Unidades de bit,

KILOBYTE: 1 Kb: 1 kilobyte: 1024 Bytes: (2^10)

 1 bit (es la unidad mínima de almacenamiento, 0/1)


 Nible = 4 bits = medio Byte
 8 Bits = 1 Byte
 1024 Bytes = 1 KiloByte (un archivo de texto plano, 20 kb)
 1024 Kilobytes = 1 MegaByte (un mp3, 3 mb)
 1024 Megabytes = 1 GigaByte (una película en DivX, 1 gb)
 1024 Gigabytes = 1 TeraByte (800 películas, 1 tb)
 1024 Terabytes = 1 PetaByte (toda la información de Google, entre 1 y 2 petabytes)
 1024 Petabytes = 1 ExaByte (Internet ocupa entre 100 y 300 Exabytes)
 1024 Exabytes = 1 ZettaByte (a partir de aqui no existen comparativas reales)
 1024 Zettabytes = 1 YottaByte
 1024 YottaBytes = 1 BrontoByte
 1024 Brontobytes = 1 GeopByte
 1024 GeopBytes = 1 SaganByte
 1024 Saganbytes = 1 JotaByte

Byte: Grupo de bits (7-8) representa un caracter.

(2)8 = 256

20 = 1…

1 2 4 8 16 32 64 128 256 512 1024…

ASCII: American Standard Code for Information Interchange.

Palabra (Word): mínima unidad de información que tiene significado para el

procesador(conjunto de bytes).
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Se agrupan en CAMPOS: un campo es un conjunto de palabras y representa una


característica o un dato.

NOMBRE

Estos se agrupan para formar REGISTROS.

NOMBRE APELLIDO PAT. APELLIDO MAT. EDAD

Archivo: conjunto de registros de un grupo de entes.

NOMBRE APELLIDO PAT. APELLIDO MAT. EDAD

Base de datos: conjunto de archivos interrelacionados.


Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Arquitectura de las computadoras


Se refiere a la construcción del sistema. La arquitectura de cualquier computadora se puede
clasificar en términos generales de acuerdo con dos características:

1. La energía que usa la máquina


2. Cómo representa, procesa, almacena y mueve físicamente los datos.

Diskette y discos duros – presentación o apunte con imágenes: características cómo funciona, (2
tipos) equipo 4 miércoles.

Reloj MP
E/S

MP BUS

RAM
ROM
Interna
Memoria

E/S
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

BC.- Celda binaria RW

Selecciona S BC
INTERNA RAM
E

BIT DEL BUS DE DATOS

Selección

MEMORIA

Compuerta AND

Registro de datos

EXTERNA
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

METODOLOGÍA DE LA PROGRAMACIÓN

Conjunto de métodos y técnicas disciplinadas que ayudan al desarrollo de programas.

Solución de problemas con la ayuda de la computadora

 Planteamiento o definición del problema


 Solución general(algoritmo, pseudocódigo, diagrama de flujo)
 Pruebas (pruebas de escritorio)
 Funciona sí o no
 Solución específica (codificación o traducción a un lenguaje de programación)
 Edición o captura
 Pruebas (corridas)
 Funciona sí o no
 Programa listo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Algoritmo: Conjunto de pasos, procedimientos o acciones que nos permiten alcanzar un


resultado o resolver un problema.

Características de los algoritmos:

 Precisión
 Determinismo
 Finitud

Ejemplo:

Huevos rellenos de jamón y gambas

Ingredientes:

- 8 huevos
- 100 g de gambas peladas
- 100 g de jamón serrano
- 50 g de aceitunas deshuesadas
- 1 pimiento morrón
- sal
- pimienta
- mayonesa

Preparación: Cocer los huevos y dejar enfriar, mezclar las yemas con las gambas hervidas, las
aceitunas y el jamón picado, se sazona con sal y pimienta, se cubren con la mayonesa y se adornan
con tiras de pimiento y aceitunas.

Pseudocódigo: Técnica para diseño de programas o algoritmos que permite definir las estructuras
de datos, las operaciones que se aplican a los datos y la lógica que tendrá el programa para
solucionar un determinado problema.

Diagrama de flujo: Representación grafica de un algoritmo, muestra gráficamente los pasos o


procesos a seguir para alcanzar la solución de un problema. Los símbolos que se utilizan en el
diagrama de flujo satisfacen las necesidades de la ISO (Intenational Organization for
Standarization), la ANSI (American National Standards Institute)
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Símbolos del diagrama de flujo

Salida o envio de
datos
(Escritura)

Programa: Conjunto de instrucciones en un lenguaje de programación para resolver un problema


o alcanzar un resultado específico.

Lenguaje de programación: Está constituido por un conjunto de reglas, sintácticas (que este bien
escrito) y semánticas (que tenga un significado).

Ejemplos:

 Java,
 Ada,
 BASIC,
 FORTRAN,
 COBOL,
 Visual C, Visual Basic, etc.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

 C , C++, C#
 ALGOL
 PL/1
 APL

Características de un buen programa

 Legibilidad
 Portabilidad
 Modificabilidad
 Eficiencia

Programación estructurada: se basa en el uso exclusivo de estructuras de control para verificar el


flujo de ejecución de las instrucciones.

En 1966, Bohn y Jacopinni publicaron un artículo del teorema de la estructura que dice lo
siguiente:

Teorema de la Estructura

“Todo programa propio, realice la tarea que realice, tiene un programa propio equivalente
que sólo utiliza las estructuras de control de la programación, que son: secuencia,
selección e iteración (repetición)”

PROGRAMA PROPIO : es un programa que cumple con lo siguiente:

 tiene un principio y un fin,

 es accesible, y,

 no tiene ciclos infinitos.


Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Según Nicklaus Wirth:

PROGRAMA = Estructuras primitivas elementales + Estructuras de datos + Estructuras de control.

OPERACIONES PRIMITIVAS ELEMENTALES


Acciones básicas que la computadora puede ejecutar.

1.-Declaración de Estructuras de datos

Esta acción permite representar en un programa la estructura de datos necesaria para abstraer en
la computadora la situación real del problema. Su formato es:

Nombre_variable1:tipo_de_datos

Nombre_variableN:tipo_de_datos

Características de Nombre variables:

Máximo 8 caracteres.

Sin espacios.

Sin símbolos especiales (,.!”#$%&/()=?¡).

Alfanuméricos.

Solo se acepta el guión largo o bajo (_).

No puede ser sólo número o empezar con número.

No puede ser palabra reservada.


Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

2.- Lectura de datos

Esta operación nos permite introducir a la computadora los datos con los cuales va a trabajar el
procesador. El dispositivo estándar de entrada es el teclado.

Su formato es:

Leer (lee) Nombre_variable1,…, Nombre de variable N

3.- Escritura de datos

Mediante la escritura de datos damos la salida a los datos de la computadora hacia un medio
periférico. La salida estándar es el monitor.

Su formato es:

Escribir (escribe) campo1,…, campo N

Campo: Objeto que se desea visualizar (un valor literal, una constante, una variable, una cadena
de caracteres o mensaje). Las cadenas o mensajes deben de ir encerrados entre comillas dobles
(“”).

4.- Operaciones elementales

4.1 Operaciones aritméticas

Para poder realizar operaciones aritméticas, necesitamos operadores aritméticos, estos


operadores nos permitirán realizar operaciones aritméticas entre operandos (los operantes
pueden ser números, constantes o variables), los operadores aritméticos que vamos a utilizar son:

^ o *  Potencia

/  División
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

+  Suma

-  Resta

* Multiplicación

mod  Módulo

4.2 Expresiones lógicas

También llamadas booleanas en honor al matemático George Boole, están constituidas por
números, constantes, y operadores lógicos y relacionales; el valor que pueden tomar estas
expresiones es el de verdadero o falso.

Operadores relacionales

<>o≠

<

>

<= / ≤

>= / ≥

Operadores lógicos
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Y Conjunción

O Disyunción

No Negación

Jerarquía de los operadores

Se refiere al orden en las que son realizadas las operaciones ya sean aritméticas, lógicas o
relacionales.

ESTRUCTURAS DE DATOS

Son las diversas maneras de identificar un objeto en la computadora, es decir los tipos de datos
que manejan las máquinas.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Dato: Expresión general que representa algún hecho, concepto o entidad real a su vez puede
ser constante y variable.
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

TIPO ANCHO EN BIT RANGO EN PC


CHAR 8 -128 A 127
INT 16 -32768 A 32767
FLOAT 32 3.4E-38 A 3.4E+38
DOUBLE 64 17E-308 A 17E+308
VOID 0 SIN VALORES
UNSIGNED CHAR 8 0 A 255
SIGNED CHAR 8 -128 A 127
UNSIGNED INT 16 0 A 65535
SIGNED INT 16 -32768 A 32767
SHORT INT 16 -35768 A 32767
UNSIGNED SHORT INT 16 0 A 65535
SIGNED SHORT INT 16 -32768 A 32767
LONG INT 32 -2147483648 A 2147483647
SIGNED LONG INT 32 -2147483648 A 2147483647
UNSIGNED LONG IT 32 0 A 4294967295
FLOAT 32 3.4E-38 A 3.4E+38
DOUBLE 64 1.7E-308 A 1.7E+308
LONG DOUBLE 64 1.7E-308 A 1.7E+308

ESTRUCTURAS DE CONTROL

Son las formas lógicas como pueden controlarse las instrucciones dentro de un programa, dentro
de las cuales se controla el flujo de instrucciones; las estructuras de control son: secuencia,
selección y repetición o iteración.

Secuencia: es una estructura con una entrada y una salida, en la cual aparece una serie de
acciones cuya ejecución es lineal y en el orden en el que aparecen.

Pseudocódigo Diagrama de flujo


Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Selección o alternativa: es una estructura con una entrada y una salida en la cual se realiza una
acción entre varias según una condición, o se realiza una acción, según el cumplimiento o no de
una determinada condición.

Puede ser simple, doble o compuesta, y múltiple.

Simple

Pseudocódigo

Si (cond) entonces BI finsi f v


Cond

BI

Doble o compuesta

Pseudocódigo

Si (cond) entonces BI1 otro BI2 finsi f Condv

BI2 BI1

Múltiple
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Pseudocódigo

Caso (opc) opc

Valor 1: BI1
BI1 BI0
Valor 2: BI2
BI2

Omisión: BI0

fincaso

Iteración o repetición: es una estructura con una entrada y una salida en la cual se repite una
acción, un número determinado o indeterminado de veces, dependiendo del cumplimiento de una
condición. Estas pueden ser:

Mientras

Pseudocódigo

Mientras (cond) BI finmientras f v


Cond

BI

Repite
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Repite BI hasta (cond)


BI

Cond
v

Para vi

Pseudocódigo

Para (vi, vf o cond, inc) BI finpara f v


Cond
vf

BI

Inc

Nota: cualquier programa que se puede representar en “para” tiene su equivalente en “mientras”
y “repite”, lo contrario no es verdad.

o Escriba un programa completo que calcule el área y el volumen de una esfera usando la
fórmula: vol = (4/3)∏r y A=4∏r^2

Para volumen:
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Pseudocódigo

Programa vol. Area

Π= 3.1416

V: real

A: real

Comienzo

Escribir “Teclea radio”

Leer radio

V (4/3) 31416*r

A 4(3.1416)*r^2

Escribir “Volumen=”, V

Escribir “Área=”, A

Terminar

DF

Teclea radio

V(4/3) 3.1416*r
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

PRUEBA DE ESCRITORIO

Tabla de variables

radio A V

5 314.16 20.94

Pantalla
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Teclea radio 5

Volumen= 20.94

Área = 314.16

o Construya un diagrama de flujo y pseudocódigo que calcule e imprima el número de


segundos que hay en un número determinado de días

1hr=360s 5 días 60s*60min S=N(3600)(24)

PSEUDOCODIGO

Programa cálculo

N: entero

S: entero

Comienza/inicio

Escribe “Teclea número de días”

Lee N

S N(3600)(24)

Escribe “Total de segundos”, S

Termina

Inicio
DF
Inicio

Teclea número
de días
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

PRUEBA DE ESCRITORIO

Tabla de variables

S N

432000 5

Pantalla
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Teclea número de días 5

Total de segundos 43200

o En las olimpiadas de invierno el tiempo que realizan los participantes en la competencia


de velocidad se mide en minutos, segundos y centésimas. La distancia que recorren se
expresa en metros. Construya un diagrama de flujo y su correspondiente pseudocódigo
que calcule la velocidad de los participantes en km/h.

Velo: distancia/tiempo

Tiempo: (minutos/ 60) + (segundos/ 3600) + (centésimas / 360000)

Distancia: (metros/1000)

Pseudocódigo

Programa Olimpic

Dist,minut,seg,cen,tiempo,metro,velo: real

Comienza

Escribe “Teclea metros”

Lee metro
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Escribe “Teclea minutos”

Lee minut

Escribe “Teclea segundos”

Lee seg

Escribe “Teclea centésimas”

Lee cen

tiempo (minut/ 60) + (seg/ 3600) + (cent / 360000)

Dist (metro/1000)

velo (Dist/tiempo)

Escribe “Velocidad de los participantes”,velo

Termina

DF
Inicio

Teclea metros

Teclea minutos

Teclea segundos

Teclea
centésimas
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

PRUEBA DE ESCRITORIO (Empleando 20 minutos 3 segundos y 4 centésimas, 7 metros)

Tabla de variables

metro minut seg cent tiempo Dist Velo

7 20 3 4 0.33417 0.007 0.0209

Pantalla

Teclea metro 7

Teclea minutos 20

Teclea segundos 3

Teclea centésimas 4
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

o Construya un programa que al recibir como dato un número entero determine e imprima
si es par, impar o nulo.

Algoritmo

Entrada: Conocer un número entero

Proceso: Determinar si es par, impar o nulo

Salida: Imprimir si es par, impar o nulo

Pseudocódigo

Programa parimpar

Num:entero

Comienza

Escribir “Teclea el número:”

Leer num

Si (num=0) entonces

Escribir “Número nulo”

Otro

Si ((num mod 2)=0) entonces

Escribir “Número par”

Otro

Escribir “Número impar”


Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Fin si

Fin si
Inicio
Termina
Teclea el
número

numradio

Num=0 Número nulo

Num mod
Número impar Número par
2=0

Construya un diagrama de flujoFiny pseudocódigo que calcule el precio de ida y vuelta en ferrocarril,
conociendo tanto la distancia entre las 2 ciudades como el tiempo de estancia en la ciudad-
destino. Si el número de días de estancia es superior a 10 y la distancia total (ida y vuelta) a
recorrer es superior a 500 km, el precio de billete se reduce 20%. El precio por kilómetro es de 19
centavos.

Al

Pseudocódigo

Programa viaje

Est, dist, dt: entero

Pb: real
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Comienza

Escribir “Teclea días de estancia”

Leer est

Escribir “Teclea distancia”

Leer dist

dt 2* dist

Si (est >10 y dt > 500) entonces

Pb (dist*19)*(0.80)

Otro

pb (dist*19)

Fin si

Escribir “Precio = $”, pb

Termina

Inicio

Teclea días
de estancia

est

Teclea
distancia

dist

Dt 2 * dist
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

PROBLEMA

o Construye un diagrama de flujo y el respectivo programa en C que, al recibir como datos


tres variables reales que representan los lados de un probable triángulo, determine si esos
lados corresponden a un triángulo. En caso de serlo, además de escribir el área
correspondiente compruebe si el mismo es equilátero, isósceles o escaleno.

#include <stdio.h>

#include <conio.h>

#include <math.h>

float L1=0,L2=0,L3=0,LM=0,Lm=0,L2m=0,Lp=0,S,SA,A;

int main ()

{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

printf("Este programa determina si los valores ingresados corresponden a un triangulo y en


tal caso calcula su area\n");

printf("\nDame el lado uno\n");

scanf("%f",&L1);

printf("Dame el lado dos\n");

scanf("%f",&L2);

printf("Dame el lado tres\n");

scanf("%f",&L3);

if (L1==L2 && L3==L2)

LM=L1;

Lm=L2;

L2m=L3;

else

if (L1>L2 && L1>L3)

LM=L1;

Lm=L2;

L2m=L3;

else

{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

if (L2>L3 && L2>L1)

LM=L2;

Lm=L1;

L2m=L3;

else

if (L3>L2 && L3>L1)

LM=L3;

Lm=L2;

L2m=L1;

Lp=Lm+L2m;

if (LM>Lp || LM==Lp)

printf("\nLos valores dados no corresponden a un triangulo\n");

else

{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

S=(LM+Lm+L2m)/2.0;

SA=(S*(S-LM)*(S-Lm)*(S-L2m));

A=pow(SA,(1/2.0));

if (LM==Lm && L2m==Lm)

printf("\nTu triangulo es equilatero y el area es %5.3f\n",A);

else

if(LM!=Lm && Lm!=L2m)

printf("\nTu triangulo es escaleno y el area es %5.3f\n",A);

else

printf("\nTu triangulo es isosceles y el area es %5.3f\n",A);

printf("\nGracias por utilizar el programa\n");

getch();

}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

o Construye un diagrama de flujo y el correspondiente programa en C que, al recibir como


dato un número entero de cuatro dígitos, determine si todos los dígitos del número son
pares.

#include <stdio.h>

#include <conio.h>

int num,numdivide,digito,noespar;

int main()

printf("Hola, este programa determina si todos los digitos del numero que teclees son pares\n");

printf("\nTeclea el numero(cuatro digitos)\n");

scanf("%i",&num);

noespar = 0;

numdivide=num;

while ( (numdivide !=0) && (noespar==0) )

digito = numdivide % 10;

if ( (digito % 2) != 0)

noespar=1;

numdivide = numdivide / 10;

}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

if (num!=0)

if (noespar==0)

printf("Los digitos del numero %i son todos pares...\n",num);

else

printf("No todos los digitos del numero %i son pares...\n",num);

else

printf("Tu numero es nulo...\n");

printf("\nGracias por utilizar el programa\n");

getch();

}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Contadores y banderas (o indicadores).


Los programas que trabajan con ciclos se pueden controlar de dos formas, una es utilizando una
variable que “cuente” cuantas veces se va a ejecutar el ciclo, y esto sólo se realiza cuando se sabe
de antemano el número o se puede pedir al usuario. En los demás casos, cuando se desconoce
este tipo de variable, se utiliza una variable que nos indica si se va a realizar el ciclo o no, el valor
inicial de la variable depende de la condición del ciclo, y cambia para poder salir del ciclo, este tipo
de variables, también se conoce como bandera.

Ejemplo.

1. Desarrolle un programa que utilice la estructura de control mientras y que escriba los
números del 1 al 10.

programa contador
cuenta: entero
comienza
cuenta <- 1
mientras (cuenta <=10)
escribe cuenta
cuenta <- cuenta +1
finmientras
termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

2. Desarrolle un programa que inicialice la variable num en 1 y que la escriba sólo si el


usuario lo autoriza, si la escribe , se incrementa la variable num y se continua en el ciclo.

Programa bandera
num : entero
resp : entero
comienza
resp <- 0
num <- 1
escribe “quieres escribir el numero?”
leer resp
mientras (resp = 1)
escribir num
num <- num + 1
escribe “quieres escribir el numero?”
leer resp
finmientras
termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

INVESTIGACIÓN
Variables: objetos que pueden cambiar su valor durante la ejecución de un programa.

Tipos de variables

Variables locales: objetos definidos tanto en el programa principal como en las funciones y su
alcance está limitado solamente al programa principal o a la función en la cual están definidas
(deben ser inicializadas cada vez que se ejecuta la función).

Variables globales: objetos definidos antes del inicio del programa principal y su alcance es muy
amplio, ya que tiene influencia tanto en el programa principal como en todas las funciones.

Variables estáticas: son similares a las locales, pero conservan su valor durante la ejecución del
programa. Es decir, comienzan a existir cuando se llama a la función y conservan su valor aun
cuando el control regresa al programa principal.

Parámetros por valor y por referencia

Parámetros por valor: permiten pasar datos entre el programa principal y las funciones, e incluso
entre las mismas funciones. En el parámetro se escribe una copia de la variable original. Si el
parámetro sufre una alteración en la función que lo recibe, la variable original no se ve afectada.

Parámetros por referencia: permiten la comunicación entre el programa principal y las funciones,
o entre las mismas funciones. Sin embargo en este caso, en lugar de escribir la copia de la variable
en el parámetro se escribe la dirección de la misma. Si el parámetro sufre una alteración en la
función que lo recibe, la variable original también se ve afectada. En C, las llamadas por referencia
se realizan mediante apuntadores (variable que contiene la dirección de otra variable y se
representa por medio de operadores de dirección (&) e indirección (*).

Referencia bibliográfica

Cairó, Osvaldo (2006) Fundamentos de Programación México: Pearson Educación


Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Serie de ejercicios

Para cada uno de los enunciados siguientes desarrolle el pseudocódigo, diagrama de flujo, prueba
de escritorio y codificación en lenguaje C.

1.- ESCRIBIR UN PROGRAMA QUE LEA UN NOMBRE DE UNA MARCA DE AUTOMÓVILES SEGUIDA DEL NOMBRE DE SU
MODELO E INFORME EL MODELO SEGUIDO DEL NOMBRE.

Programa model
modelo, marca: caracter
Comienza
Escribe” Este programa invierte el orden en que usted teclea la marca y modelo de su auto”
Escribe“Teclee la marca y el modelo de su auto”
Lee marca,modelo
Escribe” El modelo de su auto es” ,modelo,” y la marca es”,marca
Termina

Codificación

#include <stdio.h>
#include <conio.h>
char modelo [15],marca [15];
int main ()
{
printf("Este programa invierte el orden en que usted teclea la marca y modelo de su auto\n");
printf("Teclee la marca y el modelo de su auto \n");
scanf("%s %s",&marca,&modelo);
printf("El modelo de su auto es %s y la marca es %s",modelo,marca);
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo

Prueba de escritorio

Modelo Marca Este programa invierte el orden en que usted teclea


fiesta ford la marca y modelo de su auto
Teclee la marca y el modelo de su auto ford fiesta
El modelo de su auto es fiesta y la marca es ford
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

2.- DISEÑAR UN PROGRAMA PARA DETERMINAR LA HIPOTENUSA DE UN TRIÁNGULO RECTÁNGULO CONOCIDAS


LAS LONGITUDES DE LOS CATETOS.

Pseudocódigo

Programa hipote
hip, cad, cop: real
Comienza
Escribe” Este programa calcula la hipotenusa de un triangulo rectángulo”
Escribe” Teclea los catetos (valores positivos)”
Lee cad,cop
hip ((cad^2)+(cop^2))^(1/2)
Escribe” La hipotenusa de tu triangulo rectángulo vale”,hip
Escribe” Espero le haya servido el programa”
Termina

Codificación

#include <stdio.h>
#include <conio.h>
#include <math.h>
float hip,cad,cop;
int main ()
{
printf("Este programa calcula la hipotenusa de un triangulo rectangulo\n");
printf("Teclea los catetos (valores positivos)\n");
scanf("%f %f",&cad,&cop);
hip=sqrt(pow(cad,2)+pow(cop,2));
printf("La hipotenusa de tu triangulo rectangulo vale %f",hip);
getch();
printf("Espero le haya servido el programa\n");
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Prueba de escritorio

hip Cad cop


7.810249676 6 5

Este programa calcula la hipotenusa de un triangulo rectángulo


Teclea los catetos (valores positivos) 5 6
La hipotenusa de tu triangulo rectángulo vale 7.810249676
Espero le haya servido el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

3.- DISEÑAR UN PROGRAMA QUE CALCULE EL ÁREA DE UN TRIÁNGULO EN FUNCIÓN DE LAS LONGITUDES DE SUS
LADOS: AREA = √P (P-A)(P-B)(P-C), DONDE P=(A+B+C)/2 .(P=SEMIPERÍMETRO)

Pseudocódigo

Programa heron
a,b,c,P,A: real
Comienza
Escribe” Este programa calcula el area de un triangulo empleando la formula de Heron”
Escribe” Teclea el lado 1”
Lee a
Escribe” Teclea el lado 2”
Lee b
Escribe” Teclea el lado 3”
Lee c
P (a+b+c)/2
P (P)*(P-a)*(P-b)*(P-c)
A (P^(1/2))
Escribe A,”es el area de tu triangulo”
Escribe” Espero le haya servido el programa”
Termina
Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>
float a,b,c,P,A;
int main()
{
printf("Este programa calcula el area de un triangulo empleando la formula de Heron\n");
printf("Teclea el lado 1\n");
scanf("%f",&a);
printf("Teclea el lado 2\n");
scanf("%f",&b);
printf("Teclea el lado 3\n");
scanf("%f",&c);
P=(a+b+c)/2.0;
P=(P*(P-a)*(P-b)*(P-c));
A=pow(P,(1/2.0));
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

printf("%f es el area de tu triangulo\n",A);


printf("Espero le haya servido el programa\n");
getch();
}
Prueba de escritorio

a b c P A
5 6 6 8.5 13.63589
185.9375
Este programa calcula el area de un triangulo empleando la formula de Heron
Teclea el lado 1 5
Teclea el lado 2 6
Teclea el lado 3 6
13.63589 es el area de tu triangulo
Espero le haya servido el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

4.- REALIZAR LA CONVERSIÓN DE COORDENADAS POLARES A CARTESIANAS.

Pseudocódigo

Programa polar
r, angu, x, y: real
resp: entero
Comienza
Escribe” Este programa transforma coordenadas polares a coordenadas cartesianas”
Repite
Escribe” Teclea 1. si tu ángulo esta en grados y 2. si esta en radianes”
Lee resp
Hasta (resp=1 o resp=2)
Escribe” Teclea el angulo”
Lee angu
Escribe” Teclea el modulo”
Lee r
Si (resp=1) entonces
angu (pi*angu)/ 180
Fin si
x r*(cos angu)
y r*(sen angu)
Escribe” Tus coordenadas son x=”,x,”y=”,y,”i”
Escribe” Gracias por utilizar el programa”
Termina
Codificación

#include <stdio.h>
#include <conio.h>
#include <math.h>
float r,angu,x,y;
int resp;
int main()
{
printf("Este programa transforma coordenadas polares a coordenadas cartesianas\n");
do {
printf("Teclea 1. si tu angulo esta en grados y 2. si esta en radianes\n");
scanf("%i",&resp);
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

} while (resp!=1 && resp!=2);


printf("Teclea el angulo\n");
scanf("%f",&angu);
printf("Teclea el modulo\n");
scanf("%f",&r);
if (resp==1)
{
angu=((M_PI*angu)/180);
}
x=r*(cos(angu));
y=r*(sin(angu));
printf("\nTus coordenadas son \n x=%f \n y=%fi\n",x,y);
printf("\nGracias por utilizar el programa\n");
getch();
}
Prueba de escritorio

r angu x y resp
1.414213562 45 0.99999 0.99999 1
0.785398163

Este programa transforma coordenadas polares a coordenadas cartesianas


Teclea 1. si tu ángulo esta en grados y 2. si esta en radianes 1

Teclea el angulo 45
Teclea el modulo 1.414213562

Tus coordenadas son

x= 0.99999

y= 0.99999 i
Gracias por utilizar el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

5.- REALIZAR UN PROGRAMA QUE DETERMINE SI UN NÚMERO ES MÚLTIPLO DE 6.

Pseudocódigo

Programa nmulti6
n1, n2, resp: entero
Comienza
Escribe” Este programa determina si el numero dado es múltiplo de 6”
Escribe” Hay numero? (1-si,2-no)”
Lee resp
Mientras (resp=1)
Escribe” Teclea el numero”
Lee n1
Si (n1 mod 6=0) entonces
Escribe” El numero”,n1,”es múltiplo de 6”
Otro
Escribe” El numero”,n1.”no es múltiplo de 6”
Fin si
Escribe” Hay numero? (1-si,2-no)”
Lee resp
Fin mientras
Escribe” Gracias por utilizar el programa”
Termina

Codificación

#include <stdio.h>
#include <conio.h>
int n1,resp;
int main()
{
printf("Este programa determina si el numero dado es multiplo de 6\n");
printf("Hay numero? (1-si,2-no)\n");
scanf("%i",&resp);
while (resp==1)
{
printf("Teclea el numero\n");
scanf("%i",&n1);
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

if (n1%6==0)
{
printf("El numero %i es multiplo de 6\n",n1);
}
else
{
printf("El numero %i no es multiplo de 6\n",n1);
}
printf("Hay numero? (1-si,2-no)\n");
scanf("%i",&resp);
}
printf("Gracias por utilizar el programa\n");
getch();
}
Prueba de escritorio

n1 resp
12 1

Este programa determina si el numero dado es multiplo de 6


Hay numero? (1-si,2-no) 1
Teclea numero 12
El numero 12 es multiplo de 6
Hay numero? (1-si,2-no) 1
Teclea numero 8
El numero 8 no es múltiplo de 6
Hay numero? (1-si,2-no) 2
Gracias por utilizar el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

6.- ESCRIBIR UN PROGRAMA COMPLETO QUE CALCULE TODAS LAS RAÍCES DE LA ECUACIÓN CUADRÁTICA:

AX2+ BX+C =0 USANDO LA FÓRMULA GENERAL.

Pseudocódigo

Programa raicecua
x1, x2, a, b, c, discri: real
Comienza
Escribe” Este programa calcula el valor de las raíces de tu ecuación ax^2+bx+c=0”
Escribe” Teclea a”
Lee a
Escribe” Teclea b”
Lee b
Escribe” Teclea c”
Lee c
discri (b^2)-4*a*c
Si (discri>=0) entonces
x1 (-b+((b^2)-4*a*c))^(1/2)/(2*a)
x2 (-b-((b^2)-4*a*c))^(1/2)/(2*a)
Escribe” Las raíces son”,x1,”y”,x2
Otro
x1 -b/(2*a)
x2 (-discri)^(1/2)/(2*a)
Escribe” Tus raíces son complejas”
Escribe” La raíz x1 es”,x1,”+”,x2,”i”
Escribe” La raíz x2 es”,x1,”-”,x2,”i”
Fin si
Escribe” Gracias por utilizar el programa”
Termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Codificación

#include <stdio.h>
#include <conio.h>
#include <math.h>
float x1,x2,a,b,c,discri;
int main ()
{
printf("Este programa calcula el valor de las raices de tu ecuacion ax^2+bx+c=0\n");
printf("\nTeclea a \n");
scanf ( "%f",&a);
printf("Teclea b \n");
scanf ( "%f",&b);
printf("Teclea c \n");
scanf ( "%f",&c);
discri=(pow(b,2)-4*a*c);
if (discri>=0)
{
x1=(-(b)+sqrt(pow(b,2)-4*a*c))/2*a;
x2=(-(b)-sqrt(pow(b,2)-4*a*c))/2*a;
printf("\nLas raices son %5.3f y %5.3f\n",x1,x2);
}
else
{
x1=-b/(2*a);
x2=sqrt(-discri)/(2*a);
printf("Tus raices son complejas\n");
printf("\nLa raiz x1 es %5.3f + %5.3fi\n",x1,x2);
printf("\nLa raiz x2 es %5.3f - %5.3fi\n",x1,x2);
}
printf("\nGracias por utilizar el programa\n");
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Prueba de escritorio

a b c discri X1 X2
1 4 -4 32 0.828427124 -4.828427125

Este programa calcula el valor de las raices de tu ecuacion ax^2+bx+c=0


Teclea a 1
Teclea b 4
Teclea c 4
Las raíces son 0.828427124 y -4.828427125
Gracias por utilizar el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

7.- SE TRATA DE ESCRIBIR UN PROGRAMA QUE PERMITA EMITIR LA FACTURA CORRESPONDIENTE A UNA COMPRA DE
UN ARTÍCULO DETERMINADO DEL QUE SE ADQUIEREN UNA O VARIAS UNIDADES. EL IVA A APLICAR ES DEL 16% Y SI EL
PRECIO BRUTO (PRECIO DE VENTA MÁS IVA) ES MAYOR DE 50,000 PESETAS, SE DEBE REALIZAR UN DESCUENTO DEL
5%.

Pseudocódigo

Programa descue

n: entero

costo, precio, ptotal, pdes: real

Comienza

Escribe” Este programa emite la factura de su compra, si el total rebasa las 500000 pesetas
se hara acreedor a un descuento”

Escribe” Teclee el costo del producto”

Lee costo

Escribe” Cuantas unidades desea adquirir?”

Lee n

precio n*costo

ptotal (precio*0.16)+precio

Si (ptotal>5000) entonces

pdes ptotal-(ptotal*0.05)

Escribe” El total de su compra con descuento fue”, pdes,” pesetas”

Otro

Escribe” El total de su compra fue”,ptotal,”pesetas”

Fin si
Escribe” Gracias por utilizar el programa”
Termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Codificación

#include <stdio.h>
#include <conio.h>
int n;
float costo,precio,ptotal,pdes;
int main ()
{
printf("Este programa emite la factura de su compra, si el total rebasa las 50000 pesetas se hara
acreedor a un descuento\n");
printf("Teclee el costo del producto\n");
scanf("%f",&costo);
printf("Cuantas unidades desea adquirir?\n");
scanf("%i",&n);
precio=n*costo;
ptotal=(precio*0.16)+precio;
if (ptotal>50000)
{
pdes=ptotal-(ptotal*0.05);
printf("El total de su compra con descuento fue %f pesetas",pdes);
}
else
{
printf("El total de su compra fue %f pesetas",ptotal);
}
printf("\nGracias por utilizar el programa\n");
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Prueba de escritorio

costo precio ptotal pdes n


500 6000 6960 12

Este programa emite la factura de su compra, si el total rebasa las 50000 pesetas se hara
acreedor a un descuento
Teclee el costo del producto 500
Cuantas unidades desea adquirir? 12
El total de su compra fue 6960 pesetas
Gracias por utilizar el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

8.- DISEÑE UN PROGRAMA QUE PERMITA IMPRIMIR LOS ENTEROS PARES DEL 2 AL 48.

Pseudocódigo

Programa pare248
n: entero
Comienza
n 2
Escribe” Este programa imprime los números pares iniciando en 2 hasta 48 (teclea enter
para iniciar”
Repite
Escribe n
n n+2
Hasta (n>=48)
Escribe” Gracias por utilizar el programa”

Codificación

#include <stdio.h>
#include <conio.h>
int n;
int main ()
{
n=2;
printf("Este programa imprime los numeros pares iniciando en 2 hasta 48 (teclea enter para
iniciar)\n");
getch();
do
{
printf("%i\n",n);
n=n+2;
}while(n<=48);
printf("Gracias por utilizar el programa\n");
getch ();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Prueba de escritorio

n Este programa imprime los numeros pares iniciando en 2 hasta 48 (teclea enter para iniciar)
2 2
4
4
6
6 8
8 10
10 12
12 14
16
14 18
16 20
18 22
20 24
26
22
28
24 30
26 32
28 34
30 36
38
32 40
34 42
36 44
38 46
48
40
Gracias por utilizar el programa
42
44
46
48
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

9.- ELABORAR UN PROGRAMA QUE, DADOS N NÚMEROS, IMPRIMA CUÁNTOS 0(CEROS) SE TECLEARON.

Pseudocódigo

Programa ceros
x,num,n,cr0: entero
Comienza
Escribe” Este programa te muestra cuantos ceros tecleas”
Escribe” Cuantos números?”
Lee n
x 1
cr0 0
Mientras (x<=n)
Escribe” Teclea el numero”
Lee num
x x+1
Si (num=0) entonces
cr0 cr0+1
Fin si
Fin mientras
Escribe” El total de ceros es”, cr0
Escribe” Espero haya sido útil el programa”
Termina

Codificación

#include <stdio.h>
#include <conio.h>
int x,num,n,cr0;
int main()
{
printf("Este programa te muestra cuantos ceros tecleas\n");
printf("Cuantos numeros?\n");
scanf("%i",&n);
x=1;
cr0=0;
while(x<=n)
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

{
printf("Teclea el numero\n");
scanf("%i",&num);
x=x+1;
if (num==0)
{
cr0=cr0+1;
}
}
printf("El total de ceros es %i",cr0);
printf("\nEspero haya sido util el programa\n");
getch();
}
Prueba de escritorio

x num cr0 n
1 3 0 5
2 0 1
3 4 2
4 0
5 2

Este programa te muestra cuantos ceros tecleas


Cuantos números? 5
Teclea numero 3
Teclea numero 0
Teclea numero 4
Teclea numero 0
Teclea numero 2
El total de ceros es 2
Espero le haya sido util el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

10.- LA POBLACIÓN DE MÉXICO EN 1992 ERA DE 55 MILLONES Y TIENE UNA TASA DE CRECIMIENTO DE 7%. SI
MÉXICO CONSERVA SU ACTUAL TASA DE CRECIMIENTO, ¿CUÁL SERÍA EL PRIMER AÑO EN QUE LA POBLACIÓN SEA
MAYOR A 100 MILLONES?

Pseudocódigo

Programa poblamex
crece, pobla, tasa: real
anne: entero
Comienza
Escribe” Este programa calcula el año en que la población será mayor a 100 millones”
tasa 0.07
pobla 55000000
crece 0
anne 1992
Repite
crece tasa*pobla
pobla crece + pobla
anne anne+1
Hasta (pobla>100000000)
Escribe” El año en que la población será mayor a 100 millones es”, anne
Termina

Codificación

#include<stdio.h>
#include<conio.h>
float crece,pobla,tasa;
int anne;
int main()
{
printf("Este programa calcula el año en que la poblacion sera mayor a 100 millones\n");
getch();
tasa=0.07;
pobla=55000000;
crece=0;
anne=1992;
do
{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

crece=tasa*pobla;
pobla=crece+pobla;
anne=anne+1;
}while (pobla <=100000000);
printf("El año en que la poblacion sera mayor a 100 millones es %i",anne);
getch();
}

Prueba de escritorio

pobla anne crece tasa


55000000 1992 0 0.07
58850000 1993 3850000
62969500 1994 4119500
67377365 1995 4407865
72093780.55 1996 4716415.55
77140345.19 1997 5046564.639
82540169.35 1998 5399824.163
88317981.2 1999 5777811.855
94500239.88 2000 6182258.684
101115256.7 20001 6615016.792

Este programa calcula el año en que la poblacion sera mayor a 100 millones
El año en que la poblacion sera mayor a 100 millones es 2001
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

11.- EL MATEMÁTICO ITALIANO LEONARDO FIBONACCI PROPUSO EL SIGUIENTE PROBLEMA: SUPONIENDO QUE UN
PAR DE CONEJOS TIENE UN PAR DE CRÍAS CADA MES Y CADA NUEVA PAREJA SE HACE FÉRTIL A LA EDAD DE UN MES. SI
SE DISPONE DE UNA PAREJA FÉRTIL Y NINGUNO DE LOS CONEJOS MUERE. ¿CUÁNTAS PAREJAS HABRÁ DESPUÉS DE UN
AÑO? MEJORAR EL PROBLEMA CALCULANDO EL NÚMERO DE MESES NECESARIO PARA PRODUCIR UN NÚMERO DADO
DE PAREJAS DE CONEJOS.

Pseudocódigo

Programa conejos
cone, pare, m, cdesea: entero
mreque: real
Comienza
cone 2
m 0
Escribe” Este programa calcula el numero de conejos que se tendrán en 12 meses”
Repite
cone cone*2
m m+1
Escribe” En el mes”,m,”se tienen”,cone,”conejos”
Hasta (m>12)
pare cone/2
Escribe” El total de parejas de conejos que se tendrán en 12 meses son”, pare
Escribe” Teclea el número de conejos que desea tener”
Lee cdesea
mreque ((log (cdesea))/(log(2)))-1
Si ((mreque – redondeo (mereque)<>0) entonces
Si ((mreque – redondeo (mereque))<=0.5 y (mreque – redondeo (mereque))>0) entonces
mreque mreque+1
Fin si
mreque redondeo (mreque)
cone 2^(mreque+1)
Escribe” Los meses requeridos para tener”,cdesea, “conejos son”, mreque,”aunque
tendrías” ,cone, “conejos”
Otro
Escribe” Los meses requeridos para tener”, cdesea,”conejos son”, mreque
Fin si
Escribe” Espero le haya sido útil el programa”
Termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>

int cone,pare,m,cdesea,;
float mreque;
int main()
{
cone=2;
m=0;
printf("Este programa calcula el numero de conejos que se tendran en 12 meses\n");
do
{
cone=cone*2;
m=m+1;
printf("En el mes %i se tienen %i conejos\n",m,cone);
}while (m<12);
pare=cone/2;
printf("El total de parejas de conejos que se tendran en 12 meses son %i", pare);
printf("\nTeclea el numero de conejos que deseas tener\n");
scanf("%i",&cdesea);
mreque=((log (cdesea)/log(2))-1);
if ((mreque -round (mreque))!=0)
{
if (mreque-round(mreque)<=0.5 && mreque-round(mreque)>0)
{
mreque = mreque +1;
}
mreque=round(mreque);
cone=pow(2,(mreque+1));
printf("Los meses requeridos para tener %i conejos son %3.0f aunque tendrias %i conejos \n",
cdesea,mreque,cone);
}
else
{
printf("Los meses requeridos para tener %i conejos son %3.0f \n",cdesea,mreque);
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

printf("Espero le haya sido util el programa\n");


getch();
}
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Prueba de escritorio

cdesea mreque cone m pare


25 3.64385619 2 0 4096
4 4 1
8 2
16 3
32 4
64 5
128 6
256 7
512 8
1024 9
2048 10
4096 11
8192 12
32

Este programa calcula el numero de conejos que se tendran en 12 meses


En el mes 1 se tienen 4 conejos
En el mes 2 se tienen 8 conejos
En el mes 3 se tienen 16 conejos
En el mes 4 se tienen 32 conejos
En el mes 5 se tienen 64 conejos
En el mes 6 se tienen 128 conejos
En el mes 7 se tienen 256 conejos
En el mes 8 se tienen 512 conejos
En el mes 9 se tienen 1024 conejos
En el mes 10 se tienen 2048 conejos
En el mes 11 se tienen 4096 conejos
En el mes 12 se tienen 8192 conejos
El total de parejas de conejos que se tendran en 12 meses son 4096
Teclea el numero de conejos que deseas tener 25
Los meses requeridos para tener 25 conejos son 4 aunque tendrías 32 conejos
Espero le haya sido util el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

12.- ESCRIBA UN PROGRAMA QUE ACEPTE UN AÑO EN CIFRAS ARÁBIGAS Y VISUALICE EL AÑO ESCRITO EN NÚMEROS
ROMANOS DENTRO DE UN RANGO DE 1000 A 2000.

Pseudocódigo

Programa araroma
num_ara, num_paso, dig1,dig2,dig3,dig4: entero
*roma4, *roma3, *roma2, *roma1: caracter
Comienza
Repite
Escribe” Este programa transforma un número arábigo (entre 1000 y 2000) a romano”
Escribe” Teclea el numero”
Lee num_ara
Hasta (num_ara< 999 o num_ara>2001)
num_paso num_ara
dig4 num_paso mod 10
num_paso num_paso/10
dig3 num_paso mod 10
num_paso num_paso/10
dig2 num_paso mod 10
num_paso num_paso/10
dig1 num_paso mod 10
num_paso num_paso/10
roma4 “”
roma3 “”
roma2 “”
roma1 “”
Caso (dig4)
valor1: roma4 “I”
valor2: roma4 “II”
valor3: roma4 “III”
valor4: roma4 “IV”
valor5: roma4 “V”
valor6: roma4 “VI”
valor7: roma4 “VII”
valor8: roma4 “VIII”
valor9: roma4 “IX”
omisión:
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Fin caso
Caso (dig3)
valor1: roma3 “X”
valor2: roma3 “XX”
valor3: roma3 “XXX”
valor4: roma3 “XL”
valor5: roma3 “L”
valor6: roma3 “LX”
valor7: roma3 “LXX”
valor8: roma3 “LXXX”
valor9: roma3 “XC”
omisión:
Fin caso
Caso (dig2)
valor1: roma2 “C”
valor2: roma2 “CC”
valor3: roma2 “CCC”
valor4: roma2 “CD”
valor5: roma2 “D”
valor6: roma2 “DC”
valor7: roma2 “DCC”
valor8: roma2 “DCCC”
valor9: roma2 “CM”
omisión:
Fin caso
Caso (dig1)
valor1: roma1 “M”
valor2: roma1 “MM”
omisión:
Fin caso
Escribe” romano:”, roma1,roma2,roma3,roma4
Termina

Codificación

#include <stdio.h>
#include <conio.h>
#include <math.h>
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

int num_ara,num_paso,dig1,dig2,dig3,dig4;
char *roma4,*roma3,*roma2,*roma1;

int main()
{
do
{
printf("Este programa transforma un numero arabigo (entre 1000 y 2000) a romano");
printf(“\n Teclea el numero\n”);
scanf("%i",&num_ara);
} while (num_ara<999 || num_ara>2001);
num_paso = num_ara;
dig4 = num_paso % 10;
num_paso = num_paso / 10;
dig3 = num_paso % 10;
num_paso = num_paso / 10;
dig2 = num_paso % 10;
num_paso = num_paso / 10;
dig1 = num_paso % 10;
num_paso = num_paso / 10;
roma4="";
roma3="";
roma2="";
roma1="";
switch (dig4)
{
case 1: roma4 = "I";
break;
case 2: roma4 = "II";
break;
case 3: roma4 = "III";
break;
case 4: roma4 = "IV";
break;
case 5: roma4 = "V";
break;
case 6: roma4 = "VI";
break;
case 7: roma4 = "VII";
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

break;
case 8: roma4 = "VIII";
break;
case 9: roma4 = "IX";
break;
default:
break;
}
switch (dig3)
{
case 1: roma3 = "X";
break;
case 2: roma3 = "XX";
break;
case 3: roma3 = "XXX";
break;
case 4: roma3 = "XL";
break;
case 5: roma3 = "L";
break;
case 6: roma3 = "LX";
break;
case 7: roma3 = "LXX";
break;
case 8: roma3 = "LXXX";
break;
case 9: roma3 = "XC";
break;
default:
break;
}
switch (dig2)
{
case 1: roma2 = "C";
break;
case 2: roma2 = "CC";
break;
case 3: roma2 = "CCC";
break;
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

case 4: roma2 = "CD";


break;
case 5: roma2 = "D";
break;
case 6: roma2 = "DC";
break;
case 7: roma2 = "DCC";
break;
case 8: roma2 = "DCCC";
break;
case 9: roma2 = "CM";
break;
default:
break;
}
switch (dig1)
{
case 1: roma1 = "M";
break;
case 2: roma1 = "MM";
break;
default:
break;
}
printf("Romano: %s%s%s%s\n\n",roma1,roma2,roma3,roma4);
getch();
}

Prueba de escritorio

Num_Ara Num_paso Dig1 Dig2 Dig3 Dig4 Roma1 Roma2 Roma3 Roma4
1521 1521 1 5 2 1 Vacio Vacio Vacio Vacio
M L XX I

Este programa transforma un número arábigo (entre 1000 y 2000) a romano


Teclea el numero 1521
Romano: MLXXI
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

13.- REALIZAR UN PROGRAMA QUE CALCULE: EX = 1 + X + X2/2! + X3/3! + … + XN/N!

PARA N DADO HASTA QUE N SEA TAL QUE XN/N!<E (POR EJEMPLO E = 10-4).

Pseudocódigo

Programa sumserie
n1,i,f,c: entero
sumat,x,calculo: real
Comienza
Escribe” Este programa calcula la suma de una serie”
Repite
Escribe” Dame el valor de N(mayor a 0)”
Lee n1
Hasta (n1>=0)
Escribe” Dame el valor de x”
Lee x
Para (i=1; i<=n1;i+1)
Si (i=1)
sumat 1+x
Otro
f 1
c i
Repite
f f*c
c c-1
Hasta (c=1)
sumat sumat + (x^i/f)
Fin si
Fin para
f 1
c i
Repite
f f*c
c c-1
Hasta (c=1)
calculo x^n1/f
Escribe” La suma de la serie con N=”,n1,”en“,x,”es”,sumat
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Escribe” El calculo es”,calculo


Escribe” Gracias por utilizar este programa”
Termina

Codificación
#include <stdio.h>
#include <conio.h>
#include <math.h>
int n1,i,f,c;
float sumat,x,calculo;

int main()
{
printf("Este programa calcula la suma de una serie\n");
do
{
printf("Dame el valor de N (mayor a 0): ");
scanf("%i",&n1);
} while (n1<=0);
printf("Dame el valor de X: ");
scanf("%f",&x);
for (i=1;i<=n1;i++)
{
if (i==1)
{
sumat = 1 + x;
}
else
{
f=1;
c=i;
do
{
f=f*c;
c=c-1;
} while (c>=1);
sumat = sumat + pow(x,i)/f;
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

}
f=1;
c=n1;
do
{
f=f*c;
c=c-1;
} while (c>=1);
calculo = pow(x,n1) / f;
printf("\nLa suma de la serie con N=%i en %5.2f es %5.2f \n",n1,x,sumat);
getch();
printf("\nEl calculo es %5.2f \n",calculo);
getch();
printf("Gracias por utilizar este programa.\n");
getch();
}

Prueba de escritorio

f i calculo sumat x n1 c
1 1 4.5 4 3 3 2
2 2 8.5 1
1 3 13 3
3 2
6 1

Este programa calcula la suma de una serie


Dame el valor de N (mayor a 0) 3
Dame el valor de X 3
La suma de la serie con N= 3 en 3 es 13
El calculo es 4.50
Gracias por utilizar este programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

14.- UNA COMPAÑÍA DE SEGUROS OFRECE POLÍTICA DE ASEGURAMIENTO DE PRIMA REDUCIDA, PORQUE SÓLO
ASEGURA PERSONAS QUE FUMAN MENOS DE 10 CIGARRILLOS Y PESAN MENOS DE 90 KILOS. ESCRIBA UN PROGRAMA
QUE PROCESE UNA LISTA DE SOLICITANTES. PARA CADA UNO DE ELLOS ESPECIFIQUE EL NOMBRE, NÚMERO DE
CIGARRILLOS FUMADOS A DIARIO Y EL PESO. LA SALIDA DEBE TENER:

a) EL NOMBRE DE CADA SOLICITANTE, EL NÚMERO DE CIGARRILLOS QUE FUMA DIARIO Y EL PESO, ASÍ
COMO UN MENSAJE QUE INDICA SI SE ACEPTA O RECHAZA A LA PERSONA. SI LA PERSONA HA SIDO
RECHAZADA, LA(S) RAZÓN(ES) DEBERÁ(N) IMPRIMIRSE.
b) EL NÚMERO PROMEDIO DE CIGARRILLOS Y EL PESO DE LOS SOLICITANTES QUE HAN SIDO ACEPTADOS.

Pseudocódigo

Programa seguros
tcig,resp,ciga,n,z: entero
peso, tpeso, prompeso, promciga: real
nombre : caracter
Comienza
n 0
tcig 0
tpeso 0
z 0
Escribe” Este programa determina si cumples los requisitos del seguro”
Escribe” Hay persona?(1-si, 2 u otro caracter –no)”
Lee resp
Mientras (resp=1)
z z+1
Escribe” Teclea tu nombre”
Lee nombre
Escribe” Teclea tu peso y numero de cigarrillos que fumas diario”
Lee peso, ciga
Si (peso<90 y ciga<10) entonces
Escribe nombre, ” has sido aceptado en el programa de seguros, tu peso es”,
peso,” y el numero de cigarrillos diarios es”,ciga
n n+1
tcig tcig+ciga
tpeso tpeso+peso
Otro
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Si (peso>90 y ciga<10) entonces


Escribe nombre,” no has sido aceptado en el programa porque tu peso es de”,
peso, ” y el requisito es que sea menor a 90 y el numero de cigarrillos es”, ciga
Otro
Si (peso <90 y ciga>10) entonces
Escribe nombre,” no has sido aceptado en el programa porque el numero
de cigarrillos es”, ciga,” y es mayor al requerido aunque tu peso sea”peso
Otro
Escribe nombre,”no has sido aceptado porque no cumples con los
requisitos, tus datos son: peso =”peso,” y el numero de cigarillos es”
,ciga
Fin si
Fin si
Fin si
Escribe” Hay persona? (1-si, 2 u otro caracter –no)”
Lee resp
Fin mientras
Si (n<>0) entonces
prompeso tpeso/n;
promciga tcig/n;
Escribe”El total de personas que fueron aceptadas es”,n,”, el promedio de pesos
es”,prompeso,”y el promedio de cigarrillos es ",promciga
Otro
Si (z<>0) entonces
Escribe” Ninguna persona ha sido aceptada"
Otro
Escribe” Ninguna persona solicito el seguro"
Fin si
Fin si
Escribe” Gracias por utilizar el programa"
Termina

Codificación
#include<stdio.h>
#include<conio.h>
int tcig,resp,ciga,n,z;
float peso,tpeso,prompeso,promciga;
char nombre [10];
int main ()
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

{
n=0;
tcig=0;
tpeso=0;
z=0;
printf("Este programa determina si cumples los requisitos del seguro\n");
printf("Hay persona? (1-si, 2 u otro caracter-no) \n");
scanf("%i",&resp);
while (resp==1)
{
z=z+1;
printf("Teclea tu nombre\n");
scanf("%s",&nombre);
printf("Teclea tu peso y numero de cigarillos que fumas diario\n");
scanf("%f %i",&peso,&ciga);
if (peso<90 && ciga<10)
{
printf("%s, has sido aceptado en el programa de seguros, tu peso es %5.3f y el numero de
cigarillos diarios es %i\n",nombre,peso,ciga);
n=n+1;
tcig=tcig+ciga;
tpeso=tpeso+peso;
}
else
{
if (peso>90 && ciga<10)
{
printf("%s no has sido aceptado en el programa porque tu peso es de %5.3f y el
requisito es que sea menor a 90, y el numero de cigarrillos es %i",nombre,peso,ciga);
}
else
{
if (peso<90 && ciga >10)
{
printf("%s no has sido aceptado en el programa porque el numero de cigarrillos
es %i y es mayor al requerido aunque tu peso sea %5.3f",nombre,ciga,peso);
}
else
{
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

printf("%s no has sido aceptado porque no cumples con los requisitos, tus
datos
son:\n peso = %5.3f y el numero de cigarillos es %i",nombre,peso,ciga);
}
}
}
printf("Hay persona? (1-si, 2 u otro caracter-no) \n");
scanf("%i",&resp);

}
if (n!=0)
{
prompeso=tpeso/n;
promciga=tcig/n;
printf("El total de personas que fueron aceptadas es %i, el promedio de pesos es %5.3f y el
promedio de cigarrillos es %5.3f\n",n,prompeso,promciga);
getch();
}
else
{
if (z!=0)
{
printf("Ninguna persona ha sido aceptada\n");
}
else
{
printf("Ninguna persona solicito el seguro\n");
}
}
printf("\nGracias por utilizar el programa\n");
getch();
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Prueba de escritorio

tcig resp ciga n z peso tpeso prompeso promciga nombre


0 1 5 0 0 74 0 79.5 4 marisol
5 1 3 1 1 85 74 manuel
8 1 7 2 2 92 159 carol
2 3

Este programa determina si cumples los requisitos del seguro


Hay persona?(1-si, 2 u otro caracter –no) 1
Teclea tu nombre marisol
Teclea tu peso y numero de cigarrillos que fumas diario 74 5
marisol has sido aceptado en el programa de seguros, tu peso es 74.000 y el numero de cigarrillos
es 5

Hay persona?(1-si, 2 u otro caracter –no) 1


Teclea tu nombre manuel
Teclea tu peso y numero de cigarrillos que fumas diario 85 3
manuel has sido aceptado en el programa de seguros, tu peso es 85.000 y el numero de cigarrillos
es 3

Hay persona?(1-si, 2 u otro caracter –no) 1


Teclea tu nombre carol
Teclea tu peso y numero de cigarrillos que fumas diario 92 7
carol no has sido aceptado en el programa porque tu peso es de 92.000 y el requisito es que sea
menor a 90 y el numero de cigarrillos es 7

Hay persona?(1-si, 2 u otro caracter –no) 2


El total de personas que fueron aceptadas es 2 , el promedio de pesos es 79.500 y el promedio de
cigarrillos es 4.00
Gracias por utilizar el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

15.- ESCRIBIR UN PROGRAMA QUE HAGA 10 VECES LO SIGUIENTE:

a) PEDIR AL USUARIO UNA LETRA MAYÚSCULA (EL PROGRAMA NO DEBE CONTINUAR HASTA QUE EL
USUARIO OBEDEZCA)
b) LLAMAR A UN PROCEDIMIENTO PARA DETERMINAR E IMPRIMIR SI LA LETRA ES UNA VOCAL O UNA
CONSONANTE.

Pseudocódigo

Programa usua10
letra,letram: carácter
n:entero
Comienza
Escribe” Este programa determina si la letra dada es vocal o consonante”
Repite
Escribe” Teclea la letra (MAYUSCULA)”
letra caracter
limpia (caracter)
letram mayus(letra)
Mientras (letra<>letram)
Escribe” No es mayúscula la letra”, letra
Escribe” Vuelve a teclearlo”
letra caracter
limpia (caracter)
letram mayus(letra)
Fin mientras
Caso (Letra)
valor 'A': Escribe” La letra”, letra,” es vocal”
valor 'E': Escribe” La letra”, letra,” es vocal”
valor 'I': Escribe” La letra”, letra,” es vocal”
valor 'O': Escribe” La letra”, letra,” es vocal”
valor 'U': Escribe"La letra”, letra,” es vocal"
omisión: Escribe” La letra”, letra,” es consonante"
Fin caso
n n+1;
Hasta(n>=10)
Escribe” Gracias por utilizar el programa”
Termina
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Codificación

#include <stdio.h>
#include <conio.h>
#include <ctype.h>
char letra,letram;
int n;
int main ()
{
n=1;
printf("Este programa determina si la letra dada es vocal o consonante\n");
do
{
printf("Teclea la letra (MAYUSCULA)\n");
letra=getchar();
fflush (stdin);
letram=toupper(letra);
while(letra!=letram)
{
printf("No es mayuscula la letra %c \n",letra);
printf( "Vuelve a teclearlo\n");
letra=getchar();
fflush (stdin);
letram=toupper(letra);
}

switch(letra)
{
case 'A': printf("La letra %c es vocal\n",letra);
break;
case 'E': printf("La letra %c es vocal\n",letra);
break;
case 'I': printf("La letra %c es vocal\n",letra);
break;
case 'O': printf("La letra %c es vocal\n",letra);
break;
case 'U': printf("La letra %c es vocal\n",letra);
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

break;
default: printf("La letra %c es consonante\n",letra);
break;
}
n=n+1;
} while(n<=10);
printf("\nGracias por utilizar el programa\n");
getch ();
}
Diagrama de flujo
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Prueba de escritorio

n letra letram
1 m M
2 “” M
3 M A
4 “” E
5 A P
6 “” R
7 E T
8 “” U
9 P I
10 “” O
R G
“”
T
“”
U
“”
I
“”
O
“”
G
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Este programa determina si la letra dada es vocal o consonante


Teclea la letra (MAYUSCULA) m
No es mayuscula la letra m
Vuelve a teclearlo M
La letra M es consonante
Teclea la letra (MAYUSCULA) A
La letra A es vocal
Teclea la letra (MAYUSCULA) E
La letra A es vocal
Teclea la letra (MAYUSCULA) P
La letra A es consonante
Teclea la letra (MAYUSCULA) R
La letra A es consonante
Teclea la letra (MAYUSCULA) T
La letra A es consonante
Teclea la letra (MAYUSCULA) U
La letra A es vocal
Teclea la letra (MAYUSCULA) I
La letra A es vocal
Teclea la letra (MAYUSCULA) O
La letra A es vocal
Teclea la letra (MAYUSCULA) G
La letra A es consonante
Gracias por utilizar el programa
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Arreglos multidimensionales
Arreglos bidimensionales

Conocidos también como matrices, son arreglos a cuyos elementos se debe acceder utilizando
múltiples índices. El número de dimensiones del arreglo depende tanto de las características del
problema que se va a resolver, como de las facilidades del lenguaje de programación que se utilice
para implementar la solución.

Un arreglo bidimensional es una colección finita, homogénea y ordenada de datos, en la que se


hace referencia a cada elemento del arreglo por medio de dos índices. El primero de los índices se
utiliza para indicar la fila, y el segundo, para indicar la columna.

Se distinguen dos partes importantes:

Componentes: hacen referencia a los elementos que se almacenan en cada una de sus casillas.

Índices: especifican la forma de acceder a cada uno de los elementos.

Para hacer referencia a un componente de un arreglo bidimensional debemos utilizar tanto el


nombre del arreglo, como los índices del elemento (fila y columna).

Ejemplo:

Escribe un programa en C que al recibir como dato un arreglo bidimensional cuadrado de tipo
entero de dimensión 10, imprima la diagonal de dicha matriz.

#include <stdio.h>
#include <conio.h>
const int TAM= 10;
int lectura (int [][TAM],int);
int imprime (int [][TAM],int);
int main ()
{
printf("Este programa llena una matriz y muestra su diagonal\n\n");
int MAT [TAM][TAM];
lectura (MAT,TAM);
printf("\n");
imprime (MAT,TAM);
printf("\nGracias por utlizar el programa\n");
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

getch();
}

int lectura (int A[][TAM], int F)


{
int I,J;
for (I=0; I<F; I++)
{
for (J=0; J<F; J++)
{
printf("Ingrese el elemento %d %d: ",I+1,J+1);
scanf("%d",&A[I][J]);
}
}
}

int imprime (int A[][TAM], int F)


{
int I,J;
for (I=0; I<F; I++)
{
for (J=0; J<TAM; J++)
{
if (I==J)
{
printf("Diagonal %d %d: %d\n", I,J,A[I][J]);
}
}
}
}
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Arreglos tridimensionales
En estos arreglos, cada elemento se debe referenciar por medio de tres o más índices.

A cada elemento del arreglo se accede por medio de tres índices. El primer índice se utiliza para las
filas, el segundo para las columnas y el tercero para la profundidad.

Referencia bibliográfica

Cairó, Osvaldo (2006) Fundamentos de Programación México: Pearson Educación


Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

Ordenamiento de vectores
Son los procesos que sirven para ordenar vectores o matrices con valores asignados
aleatoriamente, los más comunes son:

Ordenación por inserción directa (forma creciente)

También se le conoce como “método de la baraja”; consiste en insertar un elemento del


arreglo en la parte izquierda del mismo que ya se encuentra ordenada. El proceso se
repite desde el segundo hasta el enésimo elemento.

Ordenamiento por selección directa (forma creciente)

Es el mejor de los métodos simples de ordenación; consiste en buscar el elemento más


pequeño del arreglo y colocarlo en la primera posición. Luego se busca el segundo
elemento más pequeño y se coloca en la segunda posición; y así sucesivamente hasta que
todos los elementos del arreglo queden ordenados.

Ordenamiento de intercambio directo o burbuja

Funciona revisando cada elemento de la lista que va a ser ordenada con el siguiente,
intercambiándolos de posición si están en el orden equivocado. Es necesario revisar varias
veces toda la lista hasta que no se necesiten más intercambios, lo cual significa que la lista
está ordenada. Este algoritmo obtiene su nombre de la forma con la que suben por la lista
los elementos durante los intercambios, como si fueran pequeñas "burbujas". Dado que
solo usa comparaciones para operar elementos, se lo considera un algoritmo de
comparación, siendo el más sencillo de implementar.

Ordenamiento de Shell

El método Shell es una versión mejorada del método de inserción directa. Este método
también se conoce con el nombre de inserción con incrementos decrecientes. En el
método de ordenación por inserción directa cada elemento se compara para su ubicación
correcta en el arreglo, con los elementos que se encuentran en la parte izquierda del
mismo. Si el elemento a insertar es más pequeño que el grupo de elementos que se
Universidad Autónoma del Estado de México
Facultad de Ingeniería
Programación básica

encuentran a su izquierda, es necesario efectuar entonces varias comparaciones antes de


su ubicación.

Shell propone que las comparaciones entre elementos se efectúen con saltos de mayor
tamaño pero con incrementos decrecientes, así, los elementos quedarán ordenados en el
arreglo más rápidamente.

Se debe tener en cuenta las siguientes dos observaciones:

1. El ordenamiento por inserción es eficiente si la entrada está "casi ordenada".


2. El ordenamiento por inserción es ineficiente, en general, porque mueve los valores sólo
una posición cada vez.

Referencia bibliográfica

Cairó, Osvaldo (2006) Fundamentos de Programación México: Pearson Educación

Referencia electrónica

http://www.scribd.com/doc/1739233/Ordenamiento-en-C

http://blog.zerial.org/ficheros/Informe_Ordenamiento.pdf

You might also like