====== Mögliche Lösungen um Funktionswerte in Tabellen ausgeben zu können ======
===== Fortran =====
program main
implicit none
call tabelle (-20, 20, 1);
end program
subroutine tabelle ( start, endw, step )
implicit none
integer start, endw, step
integer k
if (step .LT. 1) then
step = 1
endif
! Tabellenkopf
write (*,*) "+-------------------+"
write (*,*) "| x | y |"
write (*,*) "+-------------------+"
! x-y-Wertepaare ausgeben
do k=start, endw, step
write (*, '(1X,2H| ,I7,3H | , I7, 2H |)') k, (2*(k**2) + 4*k + 3)
enddo
write (*,*) "+-------------------+"
end subroutine
==== Zusatzaufgabe ====
program main
implicit none
external xsquare
call tabelle (xsquare, -20, 20, 1);
end program
integer function xsquare ( x )
integer x;
xsquare = x**2;
return;
end function
integer function myfunc ( k )
implicit none
integer k
myfunc = (2*(k**2) + 4*k + 3)
end function
subroutine tabelle ( f, start, endw, step )
implicit none
integer start, endw, step, f
integer k
if (step .LT. 1) then
step = 1
endif
! Tabellenkopf
write (*,*) "+-------------------+"
write (*,*) "| x | y |"
write (*,*) "+-------------------+"
! x-y-Wertepaare ausgeben
do k=start, endw, step
write (*, '(1X,2H| ,I7,3H | , I7, 2H |)') k, f(k)
enddo
write (*,*) "+-------------------+"
end subroutine
===== C =====
#include
void table ( int start, int endw, int step )
{
printf ("+-------------------+\n");
printf ("| x | y |\n");
printf ("+---------+---------+\n");
if (step < 1)
step=1;
for (int i=start; i<=endw; i+=step)
{
printf ("| %7d | %7d |\n", i, (2*(i*i)+4*i+3));
}
printf ("+---------+---------+\n");
}
int main ()
{
table ( -20, 20, 1);
}
==== Zusatzaufgabe ====
#include
int xsquare ( int i )
{
return i*i;
}
void table ( int start, int endw, int step, int (*myfunc) (int) )
{
printf ("+-------------------+\n");
printf ("| x | y |\n");
printf ("+---------+---------+\n");
if (step < 1)
step=1;
for (int i=start; i<=endw; i+=step)
{
printf ("| %7d | %7d |\n", i, myfunc(i));
}
printf ("+---------+---------+\n");
}
int main ()
{
table ( -20, 20, 1, xsquare);
}