Hola a todos, he empezado a estudiar C a través de una plataforma online. Me han enviado material en pdf pero son lecturas de una introducción. Necesitaría una ayuda de como entenderlo. Gracias
Pasos a seguir
Los pasos a seguir para llevar a cabo la actividad son:
1. Leer detenidamente estas instrucciones e identificar los requerimientos de la
actividad.
2. Revisar detenidamente la rúbrica de evaluación.
3. Consultar los recursos necesarios facilitados en el aula.
4. Indicar si son correctas o no las expresiones indicadas, especificando el motivo
o motivos, dadas las definiciones de tipos, constantes y variables siguientes:
tipo
ftipo const
continente = { AMERICA, EUROPA, ASIA, AFRICA, OCEANIA };
pais = { ECUADOR, FRANCIA, CHINA, AUSTRALIA, MARRUECOS };
numContinentes : entero = 5; numPaises : entero = 5; maxDistancia : real = 50.0;
fconst var
fin: boolea ;
d, q: entero ; m, w: real ;
v: caracter ;
c, f: continente; p, a, s: pais;
fvar
Expresiones:
a) falso y fin o p = a
b) 0 < d y d < maxDistancia
c) codigoACaracter( numContinentes + realAEntero( maxDistancia ) )
d) a = AUSTRALIA o f = FRANCE o m = maxDistancia + enterAReal( caracterACodigo( v ) + numContinentes + numPaises div 3 )
2. Calcular el resultado de las expresiones indicadas, dadas las definiciones de tipos, constantes y variables del ejercicio anterior y suponiendo que las variables tienen los siguientes valores:
d := 5; q := 2; m := 0.5; w := 20.0; v := 'A'; fin := falso ; c := f; p := CHINA;
Expresiones:
a) enteroAReal( d ) < m < fin o FRANCIA = p
b) 'B' = codigoACaracter( realAEntero( m ) + caracterACodigo( v ) ) o c ≠ f
c) –(d * q) div caracterACodigo(v) + realAEntero(w * m) div caracterACodigo('A')
3. En el siguiente algoritmo falta definir las secciones de constantes y variables. Definir correctamente el siguiente algoritmo, en el que falta definir las secciones de constantes y variables, según lo que pueda deducir del mismo. El objeto D tiene un valor fijo (supondremos que corresponde al número 1,2).
... { Lectura de información del teclado. No es necesario rellenar esta parte ... !!! }
dolar:= 0.0;
min:= 0.0;
max:= min;
dolar:= enteroAReal( c );
mientras dolar > 0.0 hacer euro := dolar * D;
t := t + euro;
s i euro > max e ntonces
max:= euro;
fsi
si euro < min entonces
min:= euro;
fsi
c:= c – 10;
dolar:= enteroAReal( c );
fmientras
m := (min + max) / 2.0; b := m = dolar;
{ Una vez realizados los cálculos, se muestran los resultados por pantalla. }
falgoritmo
4. Construir un algoritmo que cuente los enteros positivos inferiores a 1000 que cumplan que su dígito de mayor peso sea igual a la suma del resto de dígitos. A partir del esqueleto del algoritmo siguiente, rellenar los cuadros grises de manera que el algoritmo resuelva el problema.
a) algoritmo digitos var
n, contador : entero ;
centenas, decenas, unidades: entero ; digitos : booleano;
fvar
{Pre: cierto }
contador := ; n:=1 ;
mientras
si n < 10 entonces
digitos := falso ; sino
hacer
si n < 100 entonces
digitos := n div 10 = n mod 10; sinó
fsi fsi
si digitos entonces
fsi
n := n + 1;
fmientras
{Una vez hechos los cálculos, se imprimirán los resultados por pantalla.}
{Post: contador contiene el número de enteros positivos inferiores a 1000, que cumplen que su dígito de mayor peso es igual a la suma del resto de dígitos.}
falgoritmo
Nótese que en el algoritmo anterior tiene que rellenar los cuadros con una única instrucción o expresión, a excepción de la rama alternativa del si ... sino, que puede estar constituida por una composición secuencial de acciones.
b) Vuelve a escribir el mismo algoritmo pero esta vez utilizando la estructura
para . .. fpara en lugar de
mientras ... fmientras.
5. Considerar el siguiente algoritmo:
algoritmo euros const
PUNTOSxEURO: real = 0.5; fconst
var
producto, producto_max: entero ;
precio, precio_max, total: real ; fvar
{Pre: En la entrada estándar hay una secuencia de la forma:
c0 p0 c1 p1 c2 p2 c3 p3 ... cN-1 pN-1 0
siendo N> 0, que representa una lista de la compra de un supermercado, donde:
ci> 0 es un entero que representa un código de producto,
pi> 0.0 es un número real que representa el precio del producto en euros.
El código es propio del producto, y no puede aparecer repetido en la secuencia. El código 0 será la marca de fin de secuencia.}
total := 0.0;
precio_max := 0.0; producto_max := 0; producto := leerEntero();
mientras ( producto > 0 ) hacer precio := leerReal();
total:= total + precio;
si precio > precio_max entonces precio_max := precio;
producto_max := producto;
fsi
producto := leerEntero();
fmientras
escrbirReal( total );
escrbirEnter( producte_max ); escribirReal( PUNTOSxEURO * total ); (1)
{Post: Se ha escrito por la salida estándar del importe total en euros, el código del producto más caro y la cantidad de puntos acumulados por la compra}
falgoritmo
a) Codificar, compilar y probar en lenguaje C el algoritmo dado.
b) Modificar el algoritmo para conocer el gasto realizado en productos de la sección de perfumería. Sabiendo que este tipo de productos tienen códigos comprendidos entre el 350 y el 400, efectuar las modificaciones necesarias para acumular, en la nueva variable total_perfumeria, el gasto efectuado en esta sección.
c) Modifica la instrucción (1) para conseguir que los productos de perfumería estén exentos de puntos.
Hola, pretendes que hagamos toda tu tarea?
Hola, no quiero que hagan mi tarea. Solo quiero que me ayuden a orientarme para poder resolverla yo.
Si especificas un poco más tu problema, será más fácil ayudarte...
Creo que nadie se va a leer todo ese mensaje para explicártelo entero.