Sie sind auf Seite 1von 31

INDICE

1. EVOLUCIÓN DE LA PROGRAMACIÓN ................................................................................... 1


1.1 Abaco ........................................................................................................................................ 1
1.2 Mecanismo de Antikythera (Greek island) 2,000-year-old ...................................................... 1
1.3 Fuller´s slide rule....................................................................................................................... 1
1.4 Partes de la calculadora Curta mid-1950s ................................................................................. 1
1.5 Answers in Black and Whithe ................................................................................................... 1
1.6 Vannevar Bush´s differential analyzer ...................................................................................... 1
1.7 Blaise Pascal (16321-1662)....................................................................................................... 1
1.8 Gottfried Wilhelm Leibniz (1646-1716) ................................................................................... 1
1.9 Charles Babbage (1792–1871) Inglaterra.................................................................................. 1
1.10 Maquina de Pascal................................................................................................................... 1
1.11 Babbage’s Difference Engine; ................................................................................................ 1
1.12 Ada Lovelace .......................................................................................................................... 2
1.13 Tarjetas Perforadoras............................................................................................................... 2
1.14 Maquina tabuladora ................................................................................................................. 2
1.15 Computadora Z1...................................................................................................................... 2
1.16 ENIAC (Electronic Numerical Integrator And Computer) 1946 ............................................ 2
1.17 CIRCUITOS INTEGRADOS ................................................................................................. 2
2. LENGUAJE DE PROGRAMACIÓN ............................................................................................. 4
2.1 Lenguaje Máquina ..................................................................................................................... 4
2.2 Lenguaje de bajo nivel .............................................................................................................. 4
2.3 Lenguaje de Alto nivel .............................................................................................................. 4
2.3 FORTRAN ................................................................................................................................ 4
2.4 COBOL ..................................................................................................................................... 5
2.5 Traductor ................................................................................................................................... 5
2.6 Compiladores ............................................................................................................................ 5
2.7 Intérpretes .................................................................................................................................. 6
2.8 BASES PARA LA PROGRAMACIÓN ................................................................................... 6
3.ALGORITMO .................................................................................................................................. 8
3.1 FASES EN LA RESOLUCIÓN DE PROBLEMAS. ................................................................ 8
3.2 ANALISIS DEL PROBLEMA ................................................................................................. 8

1
3.3 PENSAMIENTO COMPUTACIONAL ................................................................................... 9
3.4 CARACTERISTICAS DE UN ALGORITMO ...................................................................... 10
3.5 MAQUINA DE VON NEUMAN ........................................................................................... 12
3.6 HERRAMIENTAS DE PROGRAMACIÓN .......................................................................... 12
4.PSEUDOCODIGO ......................................................................................................................... 13
4.1 REGLAS SISTEMATICAS DEL PSUDOCODIGO ............................................................. 13
4.2 TIPOS DE DATOS ................................................................................................................. 13
4.3 CLASIFICACION DE LOS DATOS ..................................................................................... 14
4.4 IDENTIFICADORES ............................................................................................................. 14
4.5 EXPRESIONES ...................................................................................................................... 14
4.6 EXPRESIONES LOGICAS .................................................................................................... 15
4.7 ESTRUCTURAS SELECTIVAS ........................................................................................... 16
4.8 ESTRUCTURA SIMPLE ....................................................................................................... 16
4.9 ESTRUCTURA SELECTIVA ................................................................................................ 16
4.10 ESTRUCTURA SELECTIVA MULTIPLE ......................................................................... 16
4.11 ESTRUCTURA SELECTIVA MULTIPLE CASOS ........................................................... 17
4.12 ESTRUCTURA ITERATIVA .............................................................................................. 17
4.13 ESTRUCTURA ITERATIVA PARA ................................................................................... 18
4.14 IDENTIFICADORES ........................................................................................................... 19
4.15 OPERADORES UNITARIOS .............................................................................................. 19
4.16 REGLAS DE PRIORIDAD .................................................................................................. 19
4.17EXPRESIONES LOGICAS BOOLEANAS .......................................................................... 20
4.18 PRIORIADAD DE LOS OPERADORES LÓGICOS .......................................................... 21
4.19 OPERACIÓN DE ASIGNACIÓN ........................................................................................ 21
4.20 ENTRADA Y SALIDA DE DATOS.................................................................................... 22
5. DIAGRAMAS DE FLUJO ........................................................................................................... 23
5.1 ESTRUCTURAS DE CONTROL DE FLUJO ....................................................................... 24
5.2 ESTRUCTURAS CONDICIONALES ................................................................................... 24
5.3 ESTRUCTURA SELECTIVA IF ELSE ............................................................................................. 26
5.4 ESTRUCTURA SELECTIVA MULTIPLES CASOS ........................................................... 27
5.5 ESTRUCTURA CICLO FOR ................................................................................................. 28

2
1. EVOLUCIÓN DE LA PROGRAMACIÓN
1.1 Abaco
-Maquina de almacenar información
-Necesita de interacción humana para funcionar como máquina de cálculo completa.
1.2 Mecanismo de Antikythera (Greek island) 2,000-year-old
Predice posiciones astronómicas y los eclipses de hasta diecinueve años
1.3 Fuller´s slide rule
Las reglas de calculo se inventaron en 1600 y fueron utilizadas ampliamente durante el
siglo 20.
1.4 Partes de la calculadora Curta mid-1950s
Populares en las carreras de rally incluso antes de las calculadoras electrónicas.
1.5 Answers in Black and Whithe
Calculadora que imprimía sus resultados, frecuentemente las respuestas eran erróneas.
1.6 Vannevar Bush´s differential analyzer
Ecuaciones diferenciales por integración inventada en 1931
1.7 Blaise Pascal (16321-1662)
Rueda de pascal o pascalina
1.8 Gottfried Wilhelm Leibniz (1646-1716)
Sistema numeral binario (base 2)

El matemático británico George Boole publicó un documento histórico que detalla un


sistema algebraico de lógica que se conocería como álgebra de Boole.
1.9 Charles Babbage (1792–1871) Inglaterra
Maquinas; engranes -> representaban información.
1.10 Maquina de Pascal
Solo podía realizar sumas
Podía realizar varias operaciones. Los algoritmos estaban embebidos en la maquinaria.
1.11 Babbage’s Difference Engine;
Maquina que podía ser programada, a través de tarjetas perforadas, pero se quedo en
modelos.

1
1.12 Ada Lovelace
Se le considera la primera programadora
En 1943 publico una transcripción de un articulo sobre la “Analycal Engine” Luigui
Menebrea a la cual añadió anotaciones.
La idea de que una máquina que pudiera manipular símbolos de acuerdo a ciertas reglas y
que los números pudieran representar otra entidad que no fuera una cantidad , marca la
transición del cálculo hacia la computación.
1.13 Tarjetas Perforadoras
Joseph Jacquard (1752-1834): el primer telar programable con tarjetas perforadas.
-Ayudaron a la transición entre hacer operaciones a manipular la información.
-Una tarjeta perforada puede representar cualquier tipo de información.
1.14 Maquina tabuladora
Utilizo las tarjetas perforadas para procesar la información del censo de población de
estados unidos de 1890.
Un operador podía procesar mas de 7000 tarjetas.
10 veces mas rapidos que los métodos manuales
1.15 Computadora Z1
Konrad Zuse 1935-1936
Construida 1936-1938
Computadora mecánica con limitado número de operaciones
Operación con tarjetas perforadas
1.16 ENIAC (Electronic Numerical Integrator And Computer) 1946
Propuesta y construida por John Mauchly y John Presper
Primera computadora de propósito general.
Primera computadora de correr a la velocidad electrónica.
Utilización de bulbos
Sin ningún componente mecánico.
1.17 CIRCUITOS INTEGRADOS
William Shockley, John Bardeen, y Walter Brattain ganadores del premio Novel en 1956
Bell Laboratories

2
3
2. LENGUAJE DE PROGRAMACIÓN
Un lenguaje de programación es un conjunto de símbolos y palabras (instrucciones y
sentencias) que el usuario tiene a su disposición para elaborar un programa.
2.1 Lenguaje Máquina
La memoria de un computador está compuesta por números. La memoria de la
computadora no almacena estos números en decimal (base 10). Las computadoras
almacenan toda la información en binario (base 2) de prog
2.2 Lenguaje de bajo nivel
El primer lenguaje programación fue el ensamblador (lenguaje de segunda generación),
lenguaje basado en simbolos y números.
2.3 Lenguaje de Alto nivel
Lenguaje de programación que se asemeja a las lenguas humanas, ya que utiliza palabras y
frases fáciles de entender. Los lenguajes de programación de alto nivel fueron diseñados en
la década de 1950.

2.3 FORTRAN
El nombre FORTRAN proviene de “FORmula TRANslator” (traductor de fórmulas), y fue
desarrollado originalmente por IBM en 1954, con el objetivo de poder escribir programas
de cómputo científico en un lenguaje de alto nivel en vez de tener que recurrir a lenguaje de
máquina o ensamblador.
John McCarthy, del MIT diseño LISP(List Processing) procesamiento de listas para la
IBM 704.

4
2.4 COBOL
Lenguaje de programación para aplicaciones de negocios
Grace Hooper encabezo un grupo en UNIVAC para desarrollar FLOWMATIC con la
finalidad de desarrollar aplicaciones de negocios usando una forma de texto parecido al
inglés.
Yngve del MIT desarrollo el COMIT y ATT desarrollo SNOBOL, lenguajes donde se
podían sustituir cadenas de símbolos por otras cadenas.
Aparece PROLOG (1972) como un lenguaje para usos especiales cuya estructura básica
de control y su estrategia de implementación se basaban en conceptos de lógica
matemática.
Whirth desarrolla PASCAL el cual se convirtió en el lenguaje de la ciencia de la
computación en los 70.
-Estos lenguajes se clasifican de acuerdo a su traductor.
2.5 Traductor
Es un Sw que toma un código denominado fuente y lo transforma a un código denominado
objeto.

2.6 Compiladores
Aquellos traductores que cuyo código fuente está en lenguaje de alto nivel y lo transforman a
lenguaje de bajo nivel. Ej. C, Pascal, Fortran, C++
El Ensamblador es un caso particular de un compilador, ya que traduce el lenguaje
ensamblador a lenguaje máquina.

5
2.7 Intérpretes
Es un programa que traduce un lenguaje de alto nivel al lenguaje de máquina de una computadora,
el programa siempre permanece en su forma original y traduce cuando está en la fase de ejecución
instrucción por instrucción

Uno de los entornos más comunes de uso de los intérpretes informáticos es Internet
 El Software, existe entonces para el procesamiento de datos.
 Esta información puede ser interpretada y reorganizada como números binarios.
 La información es interpretada en símbolos, listas, tablas, etc

2.8 BASES PARA LA PROGRAMACIÓN


La Ingeniería
Invención
Creación
Resolver problemas (De forma creativa, y como nunca nadie antes lo ha hecho)
PENSAMIENTO COMPUTACIONAL

6
7
3.ALGORITMO
Formalmente definimos un algoritmo como un conjunto de pasos, procedimientos o
acciones que nos permiten alcanzar un resultado o resolver un problema.

Un algoritmo constituye entonces una lista bien definida, ordenada y finita de operaciones,
que permite encontrar la solución a un problema determinado. Dado un estado inicial y
una entrada, es a través de pasos sucesivos y bien definidos que se llega a un estado final,
en el que se obtiene una solución o la solución (si es única).

 Procedimiento lógico-matemático aplicado a la resolución de un problema. Los


algoritmos ayudan al programador a planificar un programa antes de su escritura en
un lenguaje de programación.

 Entonces debemos de pensar en la serie de operaciones que deben ocurrir, para que
ciertos eventos ocurran como nosotros queremos que ocurran.

3.1 FASES EN LA RESOLUCIÓN DE PROBLEMAS.


El proceso de resolución de un problema con una computadora conduce a la escritura de un
programa y a su ejecución en la misma. Aunque el proceso de diseñar programas es esencialmente
un proceso creativo, se puede considerar una serie de fases o pasos comunes, que generalmente
deben seguir todos los programadores.

Las fases de resolución de un problema con computadora son:


1. Análisis del problema.
2. Diseño del algoritmo.
3. Codificación.
4. Compilación y ejecución.
5. Verificación.
6. Depuración.
7. Mantenimiento.
8. Documentación.
3.2 ANALISIS DEL PROBLEMA

Esta fase requiere una clara definición, donde se contemple exactamente lo que debe hacer el
programa y el resultado o solución deseada.

8
Para poder definir bien un problema es conveniente responder a las siguientes preguntas:
-¿Qué entradas se requieren? (tipo y cantidad).
-¿Cuál es la salida deseada? (tipo y cantidad).
-¿Qué método (algoritmo, si es que existe) produce la salida deseada?

3.3 PENSAMIENTO COMPUTACIONAL

La habilidad de poner las soluciones de problemas dentro de términos explícitos que la


computadora pueda entender. (La computadora no tiene sentido común, estas hacen exactamente lo
que se les dice, no mas no menos.)

IMPORTANCIA DE LOS ALGORITMOS

9
-Un algoritmo documenta el “como” para completar una tarea particular.
-Si el algoritmo esta bien escrito, este puede ser usado para completar no solo una tarea si
no un grupo de tareas relacionadas
-La existencia de un algoritmo nos permite pensar en la potencial automatización* del
proceso (realizado por la computadora)
-La automatización de tareas redundantes, tediosas, o peligrosas libera a las personas de
realizarlas.
3.4 CARACTERISTICAS DE UN ALGORITMO
1. Preciso: (indicar el orden de realización en cada paso),
1. Definido: (si se sigue dos veces, obtiene el mismo resultado cada vez),
2. Finito: (tiene fin; un número determinado de pasos).
3. General: Debe tolerar cambios
4. Correcto: Sin errores
5. Debe tener al menos una salida (solución concreta)
6. Debe ser sencillo y legible
7. Eficiente y efectivo
8. Se ha de desarrollar en el menor tiempo posible
9. Un algoritmo debe producir un resultado en un tiempo finito. Los métodos que
utilizan algoritmos se denominan métodos algorítmicos, en oposición a los métodos
que implican algún juicio o interpretación que se denominan métodos heurísticos.

10. Para cualquier tarea, no trivial, puede haber muchas formas de completarla. (Si, hay
más de una respuesta correcta)

11. Un algoritmo no codifica la teoría detrás de las instrucciones (pasos).

12. Algunos algoritmos son más eficientes que otros. Muchos de los retos en el estudio
de los algoritmos se dedican a estudiar cuanto tiempo, recursos y esfuerzo utilizan
los algoritmos. Buscar algoritmos más eficientes

13. Los algoritmos deben modificarse después de muchos años de uso, para adaptarse a
los cambios. (tecnológicos, requerimientos de uso, nuevas funcionalidades, etc.)

10
ENTORNO OPERATIVO

11
3.5 MAQUINA DE VON NEUMAN

3.6 HERRAMIENTAS DE PROGRAMACIÓN


Las dos herramientas más comunes para ña programación son el Pseudocodigo y los
diagramas de flujo.

12
4.PSEUDOCODIGO
El pseudocódigo es una herramienta de programación en la que las instrucciones se
escriben en palabras similares al inglés o español, que facilitan tanto la escritura como la
lectura de programas.
-También se puede definir como un lenguaje de especificaciones de algoritmos.
INICIO (Siempre se pone)
LEER (Equivalente a leer variables)
ESCRIBIR (Muestra en pantalla)
FIN (Siempre se pone)
4.1 REGLAS SISTEMATICAS DEL PSUDOCODIGO
Todo pseudocodigo tiene las etiquetas INICIO Y FIN que son los limites de este.
Las palabras reservadas son escritas en mayusculas
El pseudocodigo debe de estar con sagria para que sea más facil de entender
4.2 TIPOS DE DATOS
Las principales caracteristicas de los tipos de datos que que solo ocupan un ligar ne la
memoria, os mas comunes son enteros, reales y carateres.

13
4.3 CLASIFICACION DE LOS DATOS

4.4 IDENTIFICADORES
Los datos que procesará una computadora, ya sean simples o estructurados, se deben
almacenar en casillas o celdas de memoria para utilizarlos posteriormente.
Recomendación:
Deben empezar con letra, excepto ñ o Ñ, o guión bajo y estar seguidos de cero o más letras,
números o guiones bajos
No se permiten símbolos como:
$ ¡ ! ¿ ? ° | & - % # @ , . ‘ “ / \ o espacios en blanco y tabuladores

La acción para la asignación de un valor se conoce como instrucción o sentencia de


asignación.
Las acciones de asignación se clasifican según sea el tipo de expresiones en:
Asignación aritméticas, Asignación lógica y Asignación de caracteres
4.5 EXPRESIONES
Son la combinación de constantes, variables, símbolos de operación, paréntesis y nombres
de funciones especiales, idea que puede ser utilizada en notaciones de matemática
tradicional.
Según el tipo de objetos que manipulan, pueden clasificarse en:
Aritméticas -> resultado tipo numérico. (Numero= 5)
relacionales -> resultado tipo lógico.
lógicas -> resultado tipo lógico. (0,1)

14
carácter -> resultado tipo carácter. (Letras, números)
Las expresiones aritmeticas son operaciones que realiza la computadora
4.6 EXPRESIONES LOGICAS
Listado de operadores racionales
Operador racional significado
= Igual a…
> Mayor que…
< Menor que..
>= Mayor o igual que…
<= Menor o igual que…
<> Diferente o no igual a…
• Operadores lógicos
• Precedencia
• ! o ~ o not (negado)
• and o && (conjunción)
• or o || (disyunción)
• Nota: En C un valor falso se toma como 0 y un valor verdadero se toma como
cualquier valor diferente de cero
EJEMPLOS
Expresion lóigica Resultado Valor Binario
(2>3) FALSO 0
(8<15) VERADERO 1
(7>5) y (4<9) VYV 1
(12>6) y (13<9) F 0
(12>6) o (13<9) V 1
No (2>4) V 1
No (5<8) F 0

15
4.7 ESTRUCTURAS SELECTIVAS
Las estructuras selectivas permiten expresar las elecciones que se hacen durante la
resolución del problema. Hay varios tipos de estructuras de este tipo.
1. Selectiva simple
2. Selectiva doble (alternativa).
3. Selectiva múltiple.
4. Selectiva casos.
4.8 ESTRUCTURA SIMPLE
• La estructura selectiva simple es de la siguiente forma

SI expresión lógica entonces


Instrucciones
FIN SI
4.9 ESTRUCTURA SELECTIVA
• En esta estructura, primero se hace el cálculo de la expresión lógica: si el valor de
esta expresión es cierto se ejecutan las instrucciones (pueden ser una o más de una).
• La estructura selectiva alternativa.

SI expresión lógica entonces


Instrucciones1
SI NO
Instrucciones2
FIN SI
SI expresión lógica1 ENTONCES
4.10 ESTRUCTURA SELECTIVA MULTIPLE
La estructura selectiva multiple es Instrucciones1
usada para evaluar condiciones logicas SI NO expresión lógica2 ENTONCES
mutuamente excluyentes.
Instrucciones2
SI NO expresión lógica3 ENTONCES
Instrucciones3
SI NO
16
Instruccionesn
FIN SI
4.11 ESTRUCTURA SELECTIVA MULTIPLE CASOS
• La estructura selectiva múltiple-casos se usa para comparar un mismo valor con
varios valores.

SELECCIONAR expresión
CASO valor1
Instrucciones1
CASO valor2
Instrucciones2
CASO valor3
Instrucciones3
.
.
.
EN OTRO CASO
Instruccionesn
FIN seleccionar

4.12 ESTRUCTURA ITERATIVA


• Las estructuras iterativas abren la posibilidad de ejecutar un grupo de instrucciones
más de una vez; es decir, sirven para ejecutar varias veces una misma parte de un
código
• Hay de varios tipos
1. Bucle mientras
2. Bucle repetir
3. Bucle para (cada)
La estructura iterativa mientras (while) tiene la siguiente forma:

MIENTRAS expresión lógica entonces hacer


Instrucciones
FIN mientras
ESTRUCTURA ITERATIVA REPETIR

17
4.13 ESTRUCTURA ITERATIVA PARA
• La estructura iterativa para , toma en cuenta la noción de variable-contador.

PARA i de inicio HASTA fin [PASO p] hacer


Instrucciones
FIN PARA

• Su ejecución es repetitiva y su funcionamiento es el siguiente:


• La i recibe el valor inicio y se ejecutan las instrucciones; luego, i se incrementa el
valor de p ( el paso) y se reejecutan las instrucciones, si el valor de i es menor que
fin
• En resumen, las instrucciones se ejecutan 0 o varias veces, dependiendo de los
valores de inicio, fin, y el paso
• El valor de la variable i se puede usar al interior de las instrucciones, pero no puede
ser modificado.

18
4.14 IDENTIFICADORES
• Normalmente los identificadores de las variables y de las constantes con nombre
deben ser declaradas en los programas antes de ser utilizadas. La sintaxis de la
declaración de una variable suele ser:

• <tipo_de_dato> <nombre_variable> [=<expresión>]


Ejemplo
Carácter letra, abreviatura
entero numAlumnos = 25
real salario = 23.000
4.15 OPERADORES UNITARIOS
Los lenguajes de programación C/C++, Java y C# soportan los operadores unitarios
(unarios) de incremento, ++, y decremento, --. El operador de incremento (++) aumenta el
valor de su operando en una unidad, y el operador de decremento (--) disminuye también en
una unidad.

++i Incrementa i en 1 y después utiliza el valor de i en la correspondiente expresión.


i++ Utiliza el valor de i en la expresión en que se encuentra y después se incrementa en 1.
--i Decremento de i en 1 y después utiliza el nuevo valor de i en la correspondiente
expresión.
i-i-- Utiliza el valor de i en la expresión en que se encuentra y después se incrementa en 1.
4.16 REGLAS DE PRIORIDAD
• Las expresiones que tienen dos o más operandos requieren unas reglas matemáticas
que permitan determinar el orden de las operaciones, se denominan reglas de
prioridad o precedencia y son:
• Las operaciones que están encerradas entre paréntesis se evalúan primero. Si
existen diferentes paréntesis anidados (interiores unos a otros), las expresiones más
internas se evalúan primero.
• Las operaciones aritméticas dentro de una expresión suelen seguir el siguiente orden
de prioridad:
• operador ( )
• operadores ++, – – + y – unitarios,
• operadores *, /, % (producto, división, módulo)
• operadores +, – (suma y resta).

19
4.17EXPRESIONES LOGICAS BOOLEANAS

20
4.18 PRIORIADAD DE LOS OPERADORES LÓGICOS

4.19 OPERACIÓN DE ASIGNACIÓN


• La operación de asignación es el modo de almacenar valores a una variable.
• La operación de asignación se conoce como instrucción o sentencia de asignación
cuando se refiere a un lenguaje de programación
• <nombre de la variable> ← <expresión>
• A ← 39
• B ← 50
Asignación aritmetica
Las expresiones en las operaciones de asignación son aritméticas:
valores ← 3 + 14 + 8
Otrosvalores ← 5 + 9 / 56
Asignación lógica
La expresión que se evalúa en la operación de asignación es lógica.
valores ← 3 > 8
Otrosvalores ← 4>6
Asignación de cadenas de caracteres
La expresión que se evalúa es de tipo cadena
x ← ‘31 de agosto de 2016‘
Y ← ‘cualquier texto o cadena de caracteres’

21
4.20 ENTRADA Y SALIDA DE DATOS
• Las operaciones de entrada permiten leer determinados valores y asignarlos a
determinadas variables (Leer – read)
• La salida puede aparecer en un dispositivo de salida (pantalla, impresora, etc.). La
operación de salida se denomina escritura (write).
• LEER dato
• ESCRIBIR datos

22
5. DIAGRAMAS DE FLUJO
Es una representación gráfica de un algoritmo. Los sombolos utilizados han sido
normalizados por (ANSI)
Esta tecnica es de la más antigua empleada.
Los diagramas de flujo utilizan los simbolos (cajas) Deben de estar unidos por flechas
 Los símbolos más utilizados representan:
 proceso
 Decisión
 conectores
 Inicio/fin
 entrada/salida

23
 dirección del flujo
Ejemplos de diagrama de flujo (Practica 4)
5.1 ESTRUCTURAS DE CONTROL DE FLUJO
Las estructuras de control de flujo permiten la ejecución condicional y la repetición de un
conjunto de instrucciones.
Existen 3 estructuras de control:
Secuencial
Condicional
Repetitivas o iterativas.
5.2 ESTRUCTURAS CONDICIONALES
Estas evaluan las condiciones para evaluar una expresión lógica. La estrucutra de control
más simple es la de SI.

24
25
5.3 ESTRUCTURA SELECTIVA IF ELSE

26
5.4 ESTRUCTURA SELECTIVA MULTIPLES CASOS

27
5.5 ESTRUCTURA CICLO FOR

28
29

Das könnte Ihnen auch gefallen