Monday, September 23, 2024

Mobil Hafta01


// Bir program çalıştığında ilk olarak main bloğu çalışır.
 
void main(List<String> args) { // başla
 
} // Bitir

// işareti ne iş yapar,
// açıklama satırı
// işaretin sağındaki şeyleri açıklama satırı yapar.


/*
class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: HomePage(),
    );
  }
}
*/

/* bu işaretler arasında kalan herşey açıklama satırlarıdır */


// VSCODE da CTRL+Ö seçili alandakileri açıklama satırı yapar ya da iptal eder

// class MainApp extends StatelessWidget {
//   const MainApp({super.key});

//   @override
//   Widget build(BuildContext context) {
//     return const MaterialApp(
//       home: HomePage(),
//     );
//   }
// }


void main(List<String> args) {
  // Program çalıştırıldığında ekrana merhaba dünya yazan programı yazınız.
  print("Merhaba Dünya");
}

// çalıştırma, terminalde
// dart dosyayolu
// şeklinde çalıştırılır.


// Değişkenler

// Değişken, değer tutan bir alanı işaret eden sembole denir

// değişken türleri
// sayı değişkenleri
// yazı değişkenleri
// mantıksal değişken

// sayı değişkenleri
/*
int -> tam sayı değişkeni

double -> ondalıklı sayı değişkeni

 */

// yazı değişkenleri
// string -> metin tutar

// mantıksal değişken
// bool -> 1 veya 0, true veya false


// değişken nasıl tanımlanır

// değişkenTuru DegişkenAdı

void main(List<String> args) {
  // int a=5;

  // print(a);

  // çalıştırıldığında ekrana 5 ve 7 nin toplamını yazan program

  int s1 = 5;
  int s2 = 7;
  int toplam = s1+s2;
  print(toplam);
}


void main(List<String> args) {
  // Ad ve Soyad değişkenlerine Adınızı ve Soyadınızı atınız
 
  String Ad = "Recep";
  String Soyad = "ÖZEN";
}

// Değişken tanımlama kuralları
/*
1. türkçe karakter veya özel karakter olamaz (_ hariç)
2. boşluk olamaz.
3. değişken adları tercihen küçük harf ile başlamalıdır. (Zorunlu değil)
4. Değişken sayı ile başlayamaz
 */
// aritmetiksel operatörler

// +, -, *, /

void main(List<String> args) {
    // Ad ve Soyad değişkenlerine Adınızı ve Soyadınızı atınız
  // Bu değişkenlerdeki değerleri aralarında boşluk olacak şekilde yanyana yazınız
    String Ad = "Recep";
  String Soyad = "ÖZEN";

  print(Ad + " "+ Soyad);
}

// + operatörü iki yanında string  ifade var ise onları birleştirir
// eğer iki yanında sayı var ise onları toplar
// sayı ve string değişkenleri + ile birleştirilemez.


// aritmetiksel operatörler

// +, -, *, /

void main(List<String> args) {
  // -, *, / operatörleri sadece sayılarla iş yapar

 
}


import "dart:io"; // giriş işlemleri için dart:io kütüphanesi dahil edilmelidir.

// Giriş Alma

void main(List<String> args) {
  // String ad = stdin.readLineSync();
  // Yukarıda hata alırız. çünkü giriş alma komutu null değer döndürebilen string döndürür String?
  // Bizim String null olamaz, bu tarz bir değer alamaz.
 
  // String? ad = stdin.readLineSync();
  // Yukarıdaki gibi null değer alabilen bir String? tanımlayarak kullanılabilir.
  // Ancak String olması lazım ise sorun yaşarız.

  String ad = stdin.readLineSync()!;
  // String? türünde olan bir değişkenin sonuna ! konulur ise değeri null olamayan türde döndürür
  // ! işareti kardeşim bu ifade null değil, eminim.
}


import "dart:io";
//   String ad = stdin.readLineSync()!;

void main(List<String> args) {
  // Klavyeden ad ve soyad girişi aldıktan sonra,
  // bunları aralarında boşluk olacak şekilde ekrana yazan program

  print("Adınızı Giriniz: ");
  String ad = stdin.readLineSync()!;

  print("Soyadınızı Giriniz: ");
  String soyad = stdin.readLineSync()!;

  print(ad + " "+ soyad);
 
}











 

Wednesday, May 29, 2024

9. sınıf Programlama Temelleri sınavı içerik bilgilendirme

 Sınavınız kitabınızın "FONKSİYONLAR"  konusundan başlayarak kitabın sonuna kadar olan kısımdan gerçekleştirilecektir. 

 

mesleki gelişim dersi çalışma soruları

Mesleki gelişim 2. dönem 2. yazılı sınavı çalışöa soruları için TIKLAYINIZ

Tuesday, May 14, 2024

Tuesday, May 7, 2024

Flutter Database işlemleri

 main.dart

import 'package:flutter/material.dart';
import 'package:flutter_application_2/homepage.dart';

void main() {
  runApp(const MainApp());
}

class MainApp extends StatelessWidget {
  const MainApp({super.key});

  @override
  Widget build(BuildContext context) {
    return const MaterialApp(
      home: HomePage(),
    );
  }
}


homepage.dart

import 'package:flutter/material.dart';
import 'package:flutter_application_2/adduserpage.dart';
import 'package:flutter_application_2/dbhelper/dbhelper.dart';
import 'package:flutter_application_2/dbhelper/models/user.dart';
import 'package:flutter_application_2/updateuserpage.dart';
import 'package:sqflite/sqflite.dart';

class HomePage extends StatefulWidget {
  const HomePage({super.key});

  @override
  State<HomePage> createState() => _MyWidgetState();
}

class _MyWidgetState extends State<HomePage> {
  List<User> users = [];
  @override
  void initState() {
    super.initState();
    _loadUsers();
  }

  Future<void> _loadUsers() async {
    DbHelper db = DbHelper();
    users = await db.getUsers();
    print(users);
    setState(() {
      users = users;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      body: ListView.builder(
        itemCount: users.length,
        itemBuilder: (context, index) {
          User user = users[index];
          return ListTile(
            onTap: () => Navigator.of(context).push(MaterialPageRoute(
              builder: (context) => UpdateUserPage(user.id),
            )),
            title: Text("${user.id}. ${user.username}"),
            subtitle: Text("${user.ad} ${user.soyad}"),
          );
        },
      ),
      floatingActionButton: FloatingActionButton(
          onPressed: () {
            Navigator.of(context).push(MaterialPageRoute(
              builder: (context) => const AddUserPage(),
            ));
          },
          child: const Icon(Icons.add)),
    );
  }
}

adduserpage.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_application_2/dbhelper/dbhelper.dart';
import 'package:flutter_application_2/dbhelper/models/user.dart';

class AddUserPage extends StatefulWidget {
  const AddUserPage({super.key});

  @override
  State<AddUserPage> createState() => _AddUserPageState();
}

class _AddUserPageState extends State<AddUserPage> {
  TextEditingController txtusername = TextEditingController();
  TextEditingController txtad = TextEditingController();
  TextEditingController txtpassword = TextEditingController();
  TextEditingController txtsoyad = TextEditingController();
  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("Yeni User EKLE"),
      ),
      body: Padding(
        padding: const EdgeInsets.all(10.0),
        child: Column(children: [
          const SizedBox(
            height: 10,
          ),
          TextField(
              controller: txtusername,
              decoration: const InputDecoration(
                  border: OutlineInputBorder(), hintText: "Username")),
          const SizedBox(
            height: 10,
          ),
          TextField(
              controller: txtpassword,
              decoration: const InputDecoration(
                  border: OutlineInputBorder(), hintText: "Password")),
          const SizedBox(
            height: 10,
          ),
          TextField(
              controller: txtad,
              decoration: const InputDecoration(
                  border: OutlineInputBorder(), hintText: "Ad")),
          const SizedBox(
            height: 10,
          ),
          TextField(
              controller: txtsoyad,
              decoration: const InputDecoration(
                  border: OutlineInputBorder(), hintText: "Soyad")),
          const SizedBox(
            height: 10,
          ),
          ElevatedButton(
              onPressed: () {
                DbHelper db = DbHelper();
                db.insertUser(User(
                    ad: txtad.text,
                    soyad: txtsoyad.text,
                    username: txtusername.text,
                    password: txtpassword.text));
                Navigator.pop(context);
              },
              child: const Text("EKLE")),
        ]),
      ),
    );
  }
}

updateuserpage.dart

import 'package:flutter/material.dart';
import 'package:flutter/services.dart';
import 'package:flutter_application_2/dbhelper/dbhelper.dart';
import 'package:flutter_application_2/dbhelper/models/user.dart';
import 'package:flutter_application_2/homepage.dart';

class UpdateUserPage extends StatefulWidget {
  UpdateUserPage(this.userid, {super.key});
  int? userid;
  @override
  State<UpdateUserPage> createState() => _UpdateUserPageState();
}

class _UpdateUserPageState extends State<UpdateUserPage> {
  TextEditingController txtusername = TextEditingController();
  TextEditingController txtad = TextEditingController();
  TextEditingController txtpassword = TextEditingController();
  TextEditingController txtsoyad = TextEditingController();

  @override
  void initState() {
    // TODO: implement initState
    super.initState();
    _loadUser();
  }

  Future<void> _loadUser() async {
    DbHelper db = DbHelper();
    User? user = await db.getUser(widget.userid!);
    setState(() {
      txtad.text = user!.ad;
      txtsoyad.text = user.soyad;
      txtusername.text = user.username;
      txtpassword.text = user.password;
    });
  }

  @override
  Widget build(BuildContext context) {
    return Scaffold(
      appBar: AppBar(
        title: const Text("User Düzenle"),
      ),
      body: Padding(
        padding: const EdgeInsets.all(10.0),
        child: Column(children: [
          const SizedBox(
            height: 10,
          ),
          TextField(
              controller: txtusername,
              decoration: const InputDecoration(
                  border: OutlineInputBorder(), hintText: "Username")),
          const SizedBox(
            height: 10,
          ),
          TextField(
              controller: txtpassword,
              decoration: const InputDecoration(
                  border: OutlineInputBorder(), hintText: "Password")),
          const SizedBox(
            height: 10,
          ),
          TextField(
              controller: txtad,
              decoration: const InputDecoration(
                  border: OutlineInputBorder(), hintText: "Ad")),
          const SizedBox(
            height: 10,
          ),
          TextField(
              controller: txtsoyad,
              decoration: const InputDecoration(
                  border: OutlineInputBorder(), hintText: "Soyad")),
          const SizedBox(
            height: 10,
          ),
          ElevatedButton(
              onPressed: () {
                DbHelper db = DbHelper();
                User user = User(
                    id: widget.userid,
                    ad: txtad.text,
                    soyad: txtsoyad.text,
                    password: txtpassword.text,
                    username: txtusername.text);
                db.updateUser(user);
                Navigator.of(context).push(
                    MaterialPageRoute(builder: (context) => const HomePage()));
              },
              child: const Text("GÜNCELLE")),
        ]),
      ),
    );
  }
}


dbhelper.dart


import 'dart:async';
import 'dart:io';
import 'package:flutter_application_2/dbhelper/models/user.dart';
import 'package:path/path.dart';
import 'package:path_provider/path_provider.dart';
import 'package:sqflite/sqflite.dart';

class DbHelper {
  static const String databaseName = "mydb2.db";
  static const int databaseVersion = 1;

  Database? _db;

  Future<Database?> get db async {
    if (_db != null) return _db;
    _db = await _initDb();
    return _db;
  }

  _initDb() async {
    Directory documentsDirectory = await getApplicationDocumentsDirectory();
    String path = join(documentsDirectory.path, databaseName);
    return await openDatabase(path, version: databaseVersion,
        onCreate: (db, version) {
      db.execute(
          "CREATE TABLE users (id INTEGER PRIMARY KEY, ad TEXT, soyad TEXT, username TEXT, password TEXT)");
      db.execute(
          "INSERT INTO users (ad, soyad, username, password) VALUES (?, ?, ?, ?)",
          ["Recep", "ÖZEN", "user1", "1234"]);
      db.execute(
          "INSERT INTO users (ad, soyad, username, password) VALUES (?, ?, ?, ?)",
          ["Ahmet", "TUNA", "user2", "1234"]);
      db.execute(
          "INSERT INTO users (ad, soyad, username, password) VALUES (?, ?, ?, ?)",
          ["Ali", "ÖZER", "user3", "1234"]);
      db.execute(
          "INSERT INTO users (ad, soyad, username, password) VALUES (?, ?, ?, ?)",
          ["Kazım", "SELİM", "user4", "1234"]);
    });
  }

  // Örnek: Kullanıcı Ekleme
  Future<int> insertUser(User user) async {
    final db = await this.db;
    int id = await db!.insert("users", user.toMap());
    return id;
  }

  // Örnek: Kullanıcı Okuma
  Future<List<User>> getUsers() async {
    final db = await this.db;
    List<Map<String, dynamic>> rows = await db!.query("users");
    List<User> users = rows.map((row) => User.fromMap(row)).toList();
    return users;
  }

  Future<User?> getUser(int id) async {
    final db = await this.db;
    List<Map<String, dynamic>> rows =
        await db!.query("users", where: "id=?", whereArgs: [id]);
    User? user = rows.map((row) => User.fromMap(row)).toList().firstOrNull;
    return user;
  }

  Future<int> updateUser(User user) async {
    final db = await this.db;

    return await db!
        .update("users", user.toMap(), where: "id=?", whereArgs: [user.id]);
  }
}

user.dart

class User {
  int? id;
  String ad;
  String soyad;
  String username;
  String password;

  User({
    this.id,
    required this.ad,
    required this.soyad,
    required this.username,
    required this.password,
  });

  factory User.fromMap(Map<String, dynamic> map) => User(
      id: map['id'] as int,
      ad: map['ad'] as String,
      soyad: map['soyad'] as String,
      username: map['username'] as String,
      password: map['password'] as String);

  Map<String, dynamic> toMap() => {
        'id': id,
        'ad': ad,
        'soyad': soyad,
        'username': username,
        'password': password,
      };
}


eklenecek dependeciesler

  path: ^1.8.3
  path_provider: ^2.1.3
  sqflite: ^2.3.2





Monday, May 6, 2024

python dosya okuma

 # python dilinde dosya işlemleri oldukça kolaydır.

# open functionu ile yapılır
# dosya = open("dosyanınYolu","izinkodu", encoding="utf-8")

# dosya = open("deneme.txt","r")
# dosyanın sadece adı olur ise, dosya çalıştırdığınız program ile aynı klasörde aranır.

dosya = open("c:\\users\\pc01\\desktop\\yazi.txt","r", encoding="utf-8")
# yukarıda dosyanın tam yolu belirtilmiştir, \ işareti string içinde \\ şeklinde yazılır

icerik = dosya.read()

dosya.close() # her okunan dosya, işimiz bittikten sonra mutlaka kapatılmalıdır.

print(icerik)

# dosya izin kodları
# 'r' (Okuma): Dosyayı sadece okuma için açar. Dosya yoksa hata verir.
# 'a' (Ekleme): Dosyayı veri eklemek için açar. Dosya yoksa yeni bir tane oluşturur.
# 'w' (Yazma): Dosyayı yazmak için açar. Dosya varsa içeriğini siler.
# 'x' (Oluşturma): Dosyayı oluşturmak için açar. Dosya zaten mevcutsa hata verir.



try:
 dosya = open("c:\\users\\pc01\\desktop\\yazi2.txt","x", encoding="utf-8")
# a yaptığımızda dosyayı bulamadı ve yazi2.txt adında bir dosya üretti.
# w yaptığımızda dosya var ise açar, içeriğini siler, sadece yazdıklarımız olur.
# w yaptığımızda dosya yok ise belirttiğimiz yolda belirttiğimiz isimde dosya açar.ve onda çalışır.
 
 dosya.write("merhaba ben otomatik üretildim")
 dosya.close()

 dosya = open("c:\\users\\pc01\\desktop\\yazi2.txt","r", encoding="utf-8")
 icerik = dosya.read()

 print(icerik)

 dosya.close()
except Exception as hata:
 print("Hata oluştu: ",hata)


# dosya = open("c:\\users\\pc01\\desktop\\yazi.txt","r", encoding="utf-8")

# Bilgisayarınızdaki c:\yazi.txt isimli dosyayı okuyarak içeriğini ekrana yazdıran programı yazınız.

dosya = open("c:\\yazi.txt","r",encoding="utf-8")

icerik = dosya.read()

dosya.close()

print(icerik)



# bilgisayarınızda c:\yazi.txt dosyasını erişerek içine "Ben program tarafından yazıldım"
# yazan, ardından bu dosyayı okuyarak içeriğini ekrana yazan programı yazınız.

dosya = open("c:\\yazi.txt","a",encoding="utf-8")
dosya.write("Bu üretildi.\n")
dosya.close()


dosya = open("c:\\yazi.txt","r",encoding="utf-8")

icerik = dosya.read()

dosya.close()

print(icerik)








Monday, April 22, 2024

string replace split slice


# string ifadelerde slice yapmıştık, split yapmıştık

# slice bir parça almamıza imkan veriyor idi
# split belirtilen karaktere göre parçalamaya ve bir liste oluşturmaya yarıyor idi

yazi ="Bu yazıyı kullanalım"

parca = yazi[4:] # 4 ten sona kadar
parca = yazi[4:9] # 4 ten itibaren 5 karakter, veya 4 ten 9 a kadar
parca = yazi[:6] # 0 dan 6 ya kadar
print(parca)

## ad ve soyad girişi alındığında adı ayrı soyadı ayrı olarak ekrana yazan program
isim = input("Adınızı Soyadınızı Girin: ")
# örneğin, RECEP ÖZEN
boslukIndex=isim.rfind(" ")

print(boslukIndex)
ad = isim[:boslukIndex]
print(ad)
soyad = isim[boslukIndex+1:]
print(soyad) 


# split görmüştük

yazi = "Bu ifadede geçen herşey yapaydır. Benim adım Kazım. Geleni Tutarım."

adet = yazi.count(".")
print(adet)

parcalar = yazi.split(".")
print(parcalar)

parcalar.remove("")
print(parcalar)

kelimeler = yazi.split(" ")
print(kelimeler)
print(len(kelimeler))


# Karakter değiştirme , place => kelimesi yer anlamına geliyor. replace ne olur, yeniden yerleştir, yerine yerleştir.,

# replace komutu, basitçe değiştir replace("eskiİfade","yeniİfade")

yazi = "12.04.2023 tarihinde okula gelinecek. 15.04.2023 tarihinde gidilecek"

yazi = yazi.replace("2023","2024")

print(yazi)

# Klavyeden girilen yazının içindeki a harflerini e harfi yapan ve yaziyi ekrana yazan programı yazınız.

yazi = input("Bir Yazı Girin: ")

yazi = yazi.replace("a","e").replace("A","E")
print(yazi)


# join işlemi
# split bir yazıyı parçalayarak liste döndürüyor idi

yazi = "Bu bir Yazı"

bolunmus = yazi.split(" ")

yazi = "-".join(bolunmus) # - string ifadesini al, bolunmuş listesindeki her bir elemanın arasına yerleştir.

print(yazi)


yazi = """
Küçük Denizkızı, mercan kayalıkları arasında saklanarak insan dünyasını izliyordu. Güneş ışınları dalgalar üzerinde pırıltılar saçarken, denizkızı uzaktaki gemiyi ve güvertede şarkı söyleyen kızı gördü. Kızın neşeli sesini duyan Denizkızı, o an insan olmak ve onunla şarkı söylemek istedi.

Bir yosun perisine yalvararak sihirli bir kolye istedi. Kolye sayesinde kuyruğu bacaklara dönüştü ve Denizkızı karaya çıktı. İlk adımları tökezlese de, kızın şarkısına doğru yürümeye devam etti. Kız onu görünce şaşırdı ama Denizkızı'nın güzelliğine hayran kaldı. Beraber şarkı söylemeye başladılar ve denizkızı, o anki mutluluğu kelimelerle ifade edemiyordu.

Ancak güneş batarken, sihrin etkisi geçmeye başladı. Denizkızı'nın bacakları tekrar kuyruğa dönüştü ve denize geri dönmek zorunda kaldı. Kız onu uğurladı ve vedalaşırken Denizkızı'nın mutluluğu hüzünle karıştı. Belki de bir gün tekrar şarkı söyleyeceklerdi, ama o an sadece denizkızı ve hayali kalmıştı.
"""


#1. yazinin içinde kaç tane kelime olduğunu ekrana yazınız.
# kelime adedi : 12

#2. yazinin içindeki noktalama işaretlerinin tamamını silerek, yazıyı ekrana yazın. (, . ')

#3. tüm harfleri büyüterek ekrana yazın

#4. tüm harfleri küçülterek ekrana yazın.

#5. denizkızı ifadesinin yazıda kaç tane olduğunu ekrana yazın. (sayarken dikkat edin, denizkızı diyoruz. büyük küçük harf önemsiz)
# Denizkızı ifadesi 3 adet bulunmaktadır.