fork download
  1. #include <stdio.h>
  2.  
  3. int main(void)
  4. {
  5. int i, j;
  6. long dec; /* ให้รับค่าอินพุทแบบ Long Integer - เลขจำนวนเต็มแบบยาว */
  7. int bit[32]; /* จองพื้นที่ในการเก็บข้อมูลเลขฐาน 2 ลงใน Array */
  8.  
  9. clrscr(); /* เคลียร์หน้าจอ */
  10. printf("Decimal Number : "); /* แจ้งผู้ใช้เพื่อเตรียมป้อนค่าเลขฐาน 10 */
  11. scanf("%ld", &dec); /* ต้องใช้ ld เพราะ Input มันเป็นแบบ Long Integer */
  12. i = 0; /* กำหนดค่าเริ่มต้นของ Array */
  13. /* ทำตามที่ได้ออกแบบโปรแกรมเอาไว้ ... ยังไงยังงั้นเลย 55555+ */
  14. do {
  15. bit[i++] = dec % 2; /* การหารเอาเศษ เพื่อให้เป็นคำตอบ */
  16.  
  17. /* การหารทั่วไป แต่ตัวแปร dec ของภาษา C มันเป็น Integer หรือ เลขจำนวนเต็ม */
  18. /* ดังนั้นมันจึงตัดเศษ (หรือทศนิยม) ทิ้งไปโดยอัตโนมัติ */
  19. dec = dec / 2;
  20.  
  21. } while (dec > 0); /* เงื่อนไขที่ทำจนกระทั่ง dec = 0 ก็ออกจากวังวนเงื่อนไข */
  22.  
  23. /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
  24. /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
  25. /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
  26. /* ทำให้ LSB มันไปอยู่ทางซ้าย ส่วน MSB มันไปอยู่ทางขวา */
  27. for(j = i - 1; j >= 0; j--)
  28. printf("%d", bit[j]);
  29.  
  30. printf("\n");
  31. return 0;
  32.  
  33. }
Success #stdin #stdout 0.02s 26012KB
stdin
import React, { useState, useEffect } from "react";
import { Card, CardContent } from "@/components/ui/card";
import { Input } from "@/components/ui/input";
import { Button } from "@/components/ui/button";

export default function PortfolioTracker() {
  const [stocks, setStocks] = useState([]);
  const [symbol, setSymbol] = useState("");
  const [amount, setAmount] = useState("");
  const [cost, setCost] = useState("");

  // เพิ่มหุ้นเริ่มต้น
  useEffect(() => {
    const initialStocks = [
      { symbol: "O", amount: 1, cost: 340 },
      { symbol: "JNJ", amount: 1, cost: 330 },
      { symbol: "MSFT", amount: 1, cost: 330 },
    ];
    setStocks(initialStocks);
  }, []);

  const addStock = () => {
    if (!symbol || !amount || !cost) return;
    setStocks([
      ...stocks,
      { symbol, amount: Number(amount), cost: Number(cost) },
    ]);
    setSymbol("");
    setAmount("");
    setCost("");
  };

  const clearPortfolio = () => {
    setStocks([]);
  };

  const totalInvestment = stocks.reduce(
    (acc, stock) => acc + stock.amount * stock.cost,
    0
  );

  return (
    <div className="max-w-2xl mx-auto p-4 space-y-4">
      <h1 className="text-xl font-bold">รายงานการลงทุนแบบ DCA</h1>
      <div className="grid grid-cols-3 gap-2">
        <Input
          placeholder="หุ้น (เช่น MSFT)"
          value={symbol}
          onChange={(e) => setSymbol(e.target.value)}
        />
        <Input
          placeholder="จำนวนหุ้น"
          type="number"
          value={amount}
          onChange={(e) => setAmount(e.target.value)}
        />
        <Input
          placeholder="ราคาต่อหุ้น"
          type="number"
          value={cost}
          onChange={(e) => setCost(e.target.value)}
        />
      </div>
      <div className="flex gap-2">
        <Button onClick={addStock}>เพิ่มการลงทุน</Button>
        <Button variant="destructive" onClick={clearPortfolio}>
          ล้างพอร์ต
        </Button>
      </div>

      <Card>
        <CardContent className="p-4">
          <h2 className="text-lg font-semibold mb-2">รายการหุ้น</h2>
          {stocks.length === 0 ? (
            <p className="text-gray-500">ยังไม่มีข้อมูลการลงทุน</p>
          ) : (
            <table className="w-full text-sm">
              <thead>
                <tr className="text-left border-b">
                  <th className="py-1">หุ้น</th>
                  <th className="py-1">จำนวน</th>
                  <th className="py-1">ราคาต่อหุ้น</th>
                  <th className="py-1">มูลค่ารวม</th>
                </tr>
              </thead>
              <tbody>
                {stocks.map((stock, index) => (
                  <tr key={index} className="border-b">
                    <td className="py-1">{stock.symbol}</td>
                    <td className="py-1">{stock.amount}</td>
                    <td className="py-1">{stock.cost.toFixed(2)}</td>
                    <td className="py-1">
                      {(stock.amount * stock.cost).toFixed(2)}
stdout
#include <stdio.h>

int main(void)
{
int i, j;
long dec;  /* ให้รับค่าอินพุทแบบ Long Integer - เลขจำนวนเต็มแบบยาว */
int bit[32];  /* จองพื้นที่ในการเก็บข้อมูลเลขฐาน 2 ลงใน Array */

    clrscr();  /* เคลียร์หน้าจอ */
    printf("Decimal Number : ");  /* แจ้งผู้ใช้เพื่อเตรียมป้อนค่าเลขฐาน 10 */
    scanf("%ld", &dec);  /* ต้องใช้ ld เพราะ Input มันเป็นแบบ Long Integer */
    i = 0;  /* กำหนดค่าเริ่มต้นของ Array */
    /* ทำตามที่ได้ออกแบบโปรแกรมเอาไว้ ... ยังไงยังงั้นเลย 55555+ */
    do {
        bit[i++] = dec % 2;  /* การหารเอาเศษ เพื่อให้เป็นคำตอบ */

        /* การหารทั่วไป แต่ตัวแปร dec ของภาษา C มันเป็น Integer หรือ เลขจำนวนเต็ม */
        /* ดังนั้นมันจึงตัดเศษ (หรือทศนิยม) ทิ้งไปโดยอัตโนมัติ */
        dec = dec / 2;

    } while (dec > 0);  /* เงื่อนไขที่ทำจนกระทั่ง dec = 0 ก็ออกจากวังวนเงื่อนไข */

    /* การแสดงผลของการแปลงเลขฐาน 10 เป็นเลขฐาน 2*/
    /* j = i - 1 และให้ j ลดค่าลงทีละ 1 ... ก็คืออ่านข้อมูลถอยหลังกลับเท่านั้นเองครับ */
    /* เพราะตัวแปรแบบ Array ในภาษา C มันเก็บข้อมูลจากซ้ายไปขวา */
    /* ทำให้ LSB มันไปอยู่ทางซ้าย ส่วน MSB มันไปอยู่ทางขวา */
    for(j = i - 1; j >= 0; j--)
        printf("%d", bit[j]);

printf("\n");
return 0;

}