Buch Cover Buch Cover Buch Cover Buch Cover

Web-Code: - Webcode Help

RGB (2) (Unterprogramme)

Schreiben Sie die Umkehrung der obigen Funktion RGB (1):

Gegeben ist eine RGB-kodierte Ganzzahl (integer à 32 Bits):

0000'0000'rrrr'rrrr'gggg'gggg'bbbb'bbbb

Den Blauanteil erhalten Sie einfach, indem Sie das Bitmuster mit der Hexadezimalzahl "000000FF" maskieren, d. h. bitweise mit dem UND-Operator verknüpfen. Um den Grün- bzw. den Rotwert zu erhalten, muss eine Division oder eine Bit-Verschiebung vorgenommen werden. Am Schluss sind die drei Werte lediglich durch 256 zu dividieren, um eine Zahl zwischen 0.0 und 1.0 zu erhalten.

Hier die geforderten Funktionsprototypen:

r(rgb: integer): real ;
g(rgb: integer): real ;
b(rgb: integer): real ;

Bemerkung: Im Gegensatz zur vorangehenden Aufgabe kann der Wert 0.0 nun effektiv als Resultat auftreten. Tatsächlich wären in der Aufgabe RGB (1) Eingabewerte im Intervall [0.0 ... 1.0) möglich.

1 Kommentare

Bitte melde dich an um einen Kommentar abzugeben

Kommentare (1)

wwbaselmemes 24. April 2018 13:57   reply report
Mark Elliot Zuckerberg [mɑɹk_ˈɛli̯ət ˈzʌkʰɚbɚg] (* 14. Mai 1984 in White Plains, New York) ist ein US-amerikanischer Unternehmer und Mäzen. Er ist Gründer und Vorstandsvorsitzender des Unternehmens Facebook Inc. und hält an diesem einen Anteil von 28 Prozent.[1]
Inhaltsverzeichnis

1 Leben
2 Vermögen
2.1 Spenden und Investitionen
3 Facebook
4 Ansichten
5 Auszeichnungen
6 Sonstiges
7 Literatur
8 Weblinks
9 Einzelnachweise

Leben

Zuckerberg wuchs in Dobbs Ferry (New York) auf, sein Vater Edward ist Zahnarzt, seine Mutter Karen Psychotherapeutin. Er hat drei Schwestern: Randi (* 1982)[2], Donna (* 1987) und Arielle (* 1989). Er hat deutsche, österreichische sowie polnische Vorfahren und entstammt einem jüdischen Elternhaus,[3] bezeichnet sich selbst jedoch als Atheist.[4] An der Harvard University studierte Zuckerberg Informatik und Psychologie, damals wurde er Mitglied bei Alpha Epsilon Pi, einer in mehreren Ländern aktiven Studentenverbindung.[5] 2004 gründete er mit drei Harvard-Kommilitonen Facebook und gab 2006 sein Studium ohne Abschluss auf (im Jahr 2017 erhielt er die Ehrendoktorwürde).

Am 19. Mai 2012 heiratete er seine chinesischstämmige Freundin Priscilla Chan, mit der er seit 2003 eine Beziehung geführt hatte und in einer Villa in Palo Alto, Kalifornien, lebt.[6] Er kaufte alle vier Grundstücke um seine Villa in Kalifornien, um sich vor den Blicken der neugierigen Nachbarn zu schützen.[7] Am 2. Dezember 2015 kam Tochter Max zur Welt[8] und Ende August 2017 Tochter August.[9]
Vermögen

Gemäß der Forbes-Liste 2018 beträgt Zuckerbergs Vermögen ca. 71 Milliarden US-Dollar. Damit belegt er Platz 5[10] auf dieser Liste der reichsten Menschen der Welt.[11] 2009 war er der jüngste lebende Self-made-Milliardär der Welt.[12] Seit September 2010 gilt allerdings auch sein Kompagnon Dustin Moskovitz als Milliardär und damit als Rekordhalter, da er acht Tage jünger ist.[13]
Spenden und Investitionen

Im September 2010 wurde bekannt, dass Zuckerberg 100 Millionen US-Dollar für die Schulen der Stadt Newark, New Jersey, spendet und den Aufbau einer Bildungsstiftung anstrebt.[14] Im Dezember 2010 sagte Zuckerberg seine Beteiligung bei The Giving Pledge zu und gab somit das Versprechen, einen Großteil seines Reichtums für wohltätige Zwecke zu spenden.[15]

Im Dezember 2012 spendete Mark Zuckerberg 18 Millionen Facebook-Aktien im Wert von rund 500 Millionen US-Dollar an die Silicon Valley Community Foundation. Das Geld soll neue Projekte in den Bereichen Bildung und Gesundheit unterstützen.[16]

Am 2. Dezember 2015 wurde mit der Geburt seiner Tochter bekanntgegeben, dass Zuckerberg 99 Prozent seines Facebook-Aktienvermögens, das zu diesem Zeitpunkt einen Wert von 45 Milliarden US-Dollar hatte, in eine Organisation namens „Chan-Zuckerberg-Initiative“ mit der Rechtsform einer Limited Liability Company einbringen will.[17][18] Im April 2016 kündigte Facebook „ein neues Börsenarrangement an“.[19]

Am 22. September 2016 kündigten Zuckerberg und Chan an, innerhalb der kommenden zehn Jahre drei Milliarden Dollar für den Kampf gegen Krankheiten zu spenden. Mit dem Geld soll ein Projekt der Neurowissenschaftlerin und Genetik-Expertin Cornelia Bargmann finanziert und aktiv unterstützt werden.[20]
Facebook

Im Jahr 2004 gründete Mark Zuckerberg als Student zusammen mit Dustin Moskovitz, Chris Hughes und Eduardo Saverin das soziale Netzwerk Facebook. Davor versuchte er sich an einigen anderen Internetprojekten.[21] Im 4. Quartal 2015 erreichte der Börsenwert des Mutterunternehmens Facebook Inc. 306 Mrd. USD.[22]

Die Staatsanwaltschaft München I prüft ein Strafverfahren gegen Mark Zuckerberg aufgrund des passiven Duldens von Drohungen bezüglich Mord- und Gewaltverbrechen sowie der Volksverhetzung im sozialen Netzwerk Facebook.[23]
Ansichten

Anfang des Jahres 2010 nannte Zuckerberg in einem Interview mit Mike Arrington von TechCrunch als Begründung für lascheren Datenschutz den Umstand, dass Nutzer freiwillig immer mehr Daten im Internet von sich preisgeben würden und Facebook sich lediglich den gesellschaftlichen Realitäten anpasse.[24] Der Umgang der Menschen mit ihren Daten habe sich stark geändert. Die Menschen würden sich wohl fühlen, ihre persönlichen Informationen mit vielen Menschen zu teilen.[25] In einem anderen Interview erklärte er, mehrere Identitäten zu besitzen, sei „ein Beispiel für einen Mangel an Integrität“.[26]

Zuckerberg ist Befürworter eines Bedingungslosen Grundeinkommens.[27]
Auszeichnungen

Am 15. Dezember 2010 kürte das New Yorker Time Magazine Zuckerberg zur „Person des Jahres“.[28] Am 25. Februar 2016 war er der erste Empfänger des Axel Springer Awards, eines Innovationspreises der Axel Springer SE.[29] 2011 bekam er den österreichischen Big Brother Awards, einen Datenschutz-Negativpreis.[30] Im Jahr 2017 verlieh ihm die Harvard University die Ehrendoktorwürde.[31]
Sonstiges

Im Oktober 2010 wurde der Film The Social Network uraufgeführt, der auf der Entstehungsgeschichte von Facebook und Zuckerbergs Leben basiert.[32][33]
Seine Domain FaceMash.com hat Mark Zuckerberg am 20. November 2010 beim Auktionsdienst Flippa für rund 30.000 US-Dollar versteigert.[34]
Im Januar 2013 wurde bekannt, dass Facebook einen speziellen Spamfilter für Mark Zuckerberg testet. Dieser basiert auf der Anforderung, dass Personen bis zu 100 US-Dollar entrichten müssen, um eine Nachricht an den Gründer des Netzwerks zu senden, die nicht automatisch sortiert wird. Die entsprechende Funktion wurde nur für Anwender aus den Vereinigten Staaten aktiviert, deutsche Nutzer konnten sie nicht verwenden.[35]
Zuckerberg ist rot-grün-blind und hat deshalb als Facebook-Farbe blau gewählt.[6]
Zuckerberg ist einer der Stifter des Breakthrough Prize in Life Sciences, der derzeit höchstdotierten Auszeichnung der Welt.

8 Lösung(en)

def r(rgb):
    r = rgb&0x00FF0000
    r = r/256
    r = r/256
    return float(r)/256

def g(rgb):
    r = rgb&0x0000FF00
    r = r/256
    return float(r)/256

def b(rgb):
    r = rgb&0x000000FF
    return float(r)/256
                
package ch.programmieraufgaben.methoden;

/**
 * Aufgabe RGB (2) aus "Programmieren lernen"
 * @author Philipp Gressly (phi AT gressly DOT ch)
 */
public class RGB2 {
  public static void main(String[] args) {
    new RGB2().top();
  }
  
  void top() {
     test(0x00ff3311);
     test(0x000001ff);
  }
  
  void test(int rgb) {
     ausgabe(r(rgb), g(rgb), b(rgb), rgb);
  }
  
  void ausgabe(double r, double g, double b, int rgb) {
     System.out.print  (r + ", " + g + ", " + b + " -> ");
     System.out.print  (rgb);
     System.out.println(" (hex: "+ Integer.toHexString(rgb) + ")");
  }
  
  double r(int rgb) {
    int ri = rgb / 256 / 256;
    double r = ri / 256.0;
    return r;
  }
  
  double g(int rgb) {
      int gi = (rgb / 256) % 256;
      double g = gi / 256.0;
      return g;
  }
  
  double b(int rgb) {
    int bi = rgb % 256;
    double b = bi / 256.0;
    return b;
  }
  
} // end of class RGB2
                

Lösung von: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

hola hola
                

Lösung von: Name nicht veröffentlicht

// NET Core 3.x

using System;
using System.Collections.Generic;

namespace CS_MDL_CORE_RGB_Converter
{
    class Program
    {
        static void Main(string[] args)
        {
            var (r, g, b) = Hex2Rgb(0x_00_ff_ac_12);
            Console.WriteLine($"Rot:\t{r:F5}\nGrün:\t{g:F5}\nBlau:\t{b:F5}");
        }

        static (double r, double g, double b) Hex2Rgb(int hex)
        {
            var l = new List<double>();

            for (int i = 2; i >= 0; i--)
                l.Add((hex & (int)(255 * Math.Pow(256, i))) / Math.Pow(256, i + 1));

            return (l[0], l[1], l[2]);
        }
    }
}
                

Lösung von: Jens Kelm (@JKooP)

// C++ 11

#include <iostream>
#include <tuple>
#include <vector>
using namespace std;

tuple<double, double, double> hex_2_rgb(int);

int main()
{
    double r, g, b;
    tie(r, g, b) = hex_2_rgb(0x00ffac12);
    cout << "Rot:\t" << r << "\nGruen:\t" << g << "\nBlau:\t" << b << endl;
}

tuple<double, double, double> hex_2_rgb(int hex)
{
    vector<double> v;

    for (int i = 2; i >= 0; i--)
    {
        v.push_back((hex & (int)(255 * pow(256, i))) / pow(256, i + 1));
    }

    return make_tuple(v[0], v[1], v[2]);
}
                

Lösung von: Jens Kelm (@JKooP)

#include <stdio.h>
#include <math.h>
#define RED 0x00FF0000
#define GREEN 0x0000FF00
#define BLUE 0x000000FF

typedef enum _rgb_colors_{
    red = RED,
    green = GREEN,
    blue = BLUE
}rgb_colors;

double hex_2_rgb(int, rgb_colors);

int main(){
    int hex = 0x00ffac12;
    double r = hex_2_rgb(hex, red);
    double g = hex_2_rgb(hex, green);
    double b = hex_2_rgb(hex, blue);
    printf("Rot:\t%f \nGruen:\t%f \nBlau:\t%f", r, g, b);
}

double hex_2_rgb(int hex, rgb_colors rgb) {

    switch (rgb) {
    case red:
        return (hex & RED) / pow(256, 3);
        break;
    case green:
        return (hex & GREEN) / pow(256, 2);
        break;
    case blue:
        return (hex & BLUE) / 256.0;
        break;
    default:
        return 0.0;
        break;
    }
}
                

Lösung von: Jens Kelm (@JKooP)

// NET Core 3.x

using System;
using System.Collections.Generic;
using System.Linq;

namespace CS_MDL_CORE_RGB_Converter_2
{
    enum RgbColors
    {
        Red, Green, Blue
    }

    class Program
    {
        static void Main(string[] args)
        {
            var red = Hex2Rgb(0x_00_ff_ac_12, RgbColors.Red);
            Console.WriteLine(red);
        }

        static double Hex2Rgb(int hex, RgbColors rgb) =>
            new Stack<double>(Enumerable.Range(0, 3).Select(i => (hex & (int)(255 * Math.Pow(256, i))) / Math.Pow(256, i + 1))).ElementAt((int)rgb);
    }
}
                

Lösung von: Jens Kelm (@JKooP)

// C++ 20 | VS-2022
#include <iostream>
constexpr auto m{ 255.0 }, n{ 256.0 };
using uint = unsigned;

inline constexpr auto hex_2_rgb{ [](uint hex) {return std::make_tuple(
    (hex & uint(m * n * n)) / (n * n * n),
    (hex & uint(m * n)) / (n * n),
    (hex & uint(m)) / n); } };

auto main() -> int{
    constexpr auto hex{ 0x00ffac12 };
    const auto [r, g, b] { hex_2_rgb(hex) };
    std::cout << "Rot:\t" << r << "\nGruen:\t" << g << "\nBlau:\t" << b << "\n";
}
                

Lösung von: Jens Kelm (@JKooP)

Verifikation/Checksumme:

Verwenden Sie die Aufgabe RGB (1) zur Verifikation.

Aktionen

Bewertung

Durchschnittliche Bewertung:

Eigene Bewertung:
Bitte zuerst anmelden

Meta

Zeit: 0.5
Schwierigkeit: k.A.
Webcode: 4zn2-dxzd
Autor: Philipp G. Freimann (BBW (Berufsbildungsschule Winterthur) https://www.bbw.ch)

Download PDF

Download ZIP

Zu Aufgabenblatt hinzufügen