اذهب إلى المحتوى

Wael Aljamal

الأعضاء
  • المساهمات

    6975
  • تاريخ الانضمام

  • تاريخ آخر زيارة

  • عدد الأيام التي تصدر بها

    218

كل منشورات العضو Wael Aljamal

  1. علينا إدخال الأرقام من المستخدم و التأكد أننا لم ندخل -1 (ينتهي الإدخال) أو إدخال 4 قيم ثم عد الأعداد الموجبة.. علينا تعريف عداد يحوي عدد الأعداد المدخلة، و عداد آخر للقيم الزوجية (الفردية تكون ناتج الطرح) لضمان عدد تكرارات أقل من 4 يمكن استخدام حلقة for مع شرط بداخلها للقيمة -1. أرجو تجريب الطريقة السابقة قبل رؤية الحل: int numbers = 0 int even = 0; int x; for (int i=0;i<4;i++){ cin >> x; if (x == -1) break; numbers ++; if (x % 2 == 0) even ++; } cout << "numbers: " << numbers << "\neven: " << even << "\nodd: " << numbers - even << endl;
  2. ربما إعدادت مشروع أندرويد ناقصة ففي إعدادت Gradle تأكد من وجود: buildscript { repositories { jcenter() } dependencies { classpath 'com.android.tools.build:gradle:3.1.2' // هنا } } أو نسخة أحدث.. وجود متغيرات البيئة الخاصة ب java sdk و android sdk : export JAVA_HOME=/Library/Java/JavaVirtualMachines/jdk1.8.0_171.jdk/Contents/Home export PATH=$PATH:$JAVA_HOME/bin export ANDROID_HOME=/Users/saif-ams/MyFiles/applications/androidsdk export PATH=$PATH:$ANDROID_HOME/tools:$ANDROID_HOME/platform-tools
  3. يبدو أنه يجب إعطاء صلاحية للملف gradlew لتنفيذ تعليمات مكتبة Gradle chmod +x gradlew الآن يمكنك تنفيذ: cd android && ./gradlew clean حيث نحذف اللملفات المؤقتة و من ثم يمكن أن نعيد بناء التطبيق.
  4. يوجد العديد من المنصات التي تقدم شروحات برمجة باللغة العربية ومنها أكاديمية حسوب. إن تعلمك للغة الانكليزية ليس ضروري بدرجة كبيرة إنما خلال البرمجة نتعامل مع بعض المصطلحات الانكليزية مثلما هي لصعوبة ترجمتها و تبديل المصطلحات و إيجاد بديل لها مفهوم من قبل الجميع حيث أن توحيد المفاهيم يسهل النقاشات البرمجية و تبادل الأفكار. إن أغلب حلول المشكلات التي تعترض خلال الدراسة والعمل (في حال عدم وجود مرشدين و مدربين معك) ستحتاج للبحث عنها في غوغل و قراءة شروحات أجنبية وهنا تكمن الصعوبة بالإضافة للتوثيقات و الشروحات لجميع التقنيات هي بالانكليزية و لن تنفع ترجمة غوغل لتعريبها و فهمها، فبما أن لغتك ضعيفة إما أن تحسنها أو تتعلم من مصادر عربية.
  5. المعنى دلالي أي عندما تكتب object الشخص الذي يقرأ الشيفرة يفهم أن s هي array of objects أما var في حالة نمط بيانات بسيط ولكن var يمكنها أن تسلك سلوك object. يعتمد على نوع s. يمكنك قراءة هذا التوثيق المفيد. من هنا: boxing-and-unboxing c# objects استخدام object لمتغير int تدعى boxing حيث نعلم أن object هو كائن عام (أعم من int) يمكننا قصر القيمة casting مرة أخرى عندما تريد استخدامها (unboxing) استخدام var سيتم عمل compile حسب نوع s.
  6. كلاهما اسم مستعار للدلالة على العنصر الحالي الذي تمر عليه المصفوفة. نمطهم الفعلي حسب نوع s. المثالين للدلاة على أن هذه البنية البرمجية الخاصة بالحلقة تعمل مع أي نمط بيانات
  7. الشيفرة التي كتبتها أنا بلغة بايثون. أرجو منك الدراسة أكثر و الاعتماد على نفسك.
  8. هل يمكنك عرض الخطأ أو نسخه
  9. أرجو محاولة تطبيق الشرح التالي: نعرف متحول نضيف عليه المجموع قيمته الابتدائية يجب أن تكون 0. علينا المرور على القائمة و اختبار نمط العنصر الحالي: فإذا كان رقم نقوم بجمعه لمتغير المجموع و إلا لا نقوم بشئ: list = [1,'hi',2,'hello',3] sum = 0 for i in list: if type(i) != str: sum += i print(sum) # 1 + 2 + 3 = 6
  10. هذه علاقة رياضية بسيطة: if 2*C + P - 4*D and P < 0: A = C - D elif D != 0: A = C
  11. تفضل هذا مثال لتحديد حجم Header: package org.netbeans.mdr.persistence.btreeimpl.btreestorage; import java.io.*; import java.text.*; import java.util.*; import org.netbeans.mdr.persistence.*; /** Files stored in the FileCache must start with this header; it contains * information used by the logging system. The client of the cache * should assume that the first 64 bytes of the file are reserved (64 * to allow for growth). All files stored in the cache are committed * together, and should always have identical file headers. */ public class FileHeader { /** A random number generated when this set of files is created */ long fileId; private static final int TIMESTAMP_OFFSET = 8; /** A timestamp associated with the last comitted transaction * for this set of files */ long timeStamp; private static final int CURRENT_SIZE = 16; /** The size of the header */ public static final int HEADER_SIZE = 64; // هنا تحدد حجم Header /** create a new file header */ FileHeader() { fileId = new Random(new Object().hashCode()).nextLong(); updateTime(); } /** Write the file header to a file. * @param file the file to which the header is written * @exception StorageException I/O error writing to the file */ void write(RandomAccessFile file) throws StorageException { try { byte buffer[] = new byte[HEADER_SIZE]; write(buffer); file.seek(0); file.write(buffer); } catch (IOException ex) { throw new StorageIOException(ex); } } /** Write the file header to a byte array * @param buffer the byte array to write the header to. */ void write(byte buffer[]) { int offset = 0; offset = Converter.writeLong(buffer, offset, fileId); offset = Converter.writeLong(buffer, offset, timeStamp); for (int i = offset; i < HEADER_SIZE; i++) { buffer[i] = 0; } } /** Read the header from an existing file * @param file the file from which the header is read * @exception StorageException I/O error reading the file */ FileHeader(RandomAccessFile file) throws StorageException { try { file.seek(0); fileId = file.readLong(); timeStamp = file.readLong(); } catch (IOException ex) { throw new StorageIOException(ex); } } /** update the time stamp in the header */ void updateTime() { timeStamp = System.currentTimeMillis(); } /** update the timestamp in the cache * @param page the page to update */ static void updateTime(CachedPage page, long newTimeStamp) { Converter.writeLong(page.contents, TIMESTAMP_OFFSET, newTimeStamp); } /** Create new files with a given header * @param names the names of the files * @param size if greater than 0, the size to make the files * @param replace if true, replace existing files. if false, throw * an exception if any of the files exists * @exception StorageException I/O error creating the files * or "replace" was false, and a file already exists */ public void addFiles( String names[], int size, boolean replace) throws StorageException { if (!replace) { for (int i = 0; i < names.length; i++) { File file = new File(names[i]); if (file.exists()) { throw new StorageBadRequestException( MessageFormat.format("File {0} already exists", new Object[] {names[i]} )); } } } try { for (int i = 0; i < names.length; i++) { RandomAccessFile file = new RandomAccessFile(names[i], "rw"); write(file); if (size > 0) file.setLength(size); else file.setLength(file.getFilePointer()); file.close(); } } catch (IOException ex) { throw new StorageIOException(ex); } } /** Create a set of files with a common header * @param names the names of the files * @param size if greater than 0, the size to make the files * @param replace if true, replace existing files. if false, throw * an exception if any of the files exists * @return the header used to create the files * @exception StorageException I/O error creating the files * or "replace" was false, and a file already exists */ public static FileHeader createFiles( String names[], int size, boolean replace) throws StorageException { FileHeader header = new FileHeader(); header.addFiles(names, size, replace); return header; } /** * test for equality with another FileHeader * @param equals compare for equality with this */ public boolean equals(Object o) { if (!(o instanceof FileHeader)) return false; FileHeader header = (FileHeader)o; return (header.fileId == this.fileId) && (header.timeStamp == this.timeStamp); } }
  12. القيمة المعادة من الاستعلام هي مصفوفة أغراض علينا قراءة قيمها بالطريقة التالية: [{"UserPost":2}, {} , {}] _____0___________1_____2 0 => {"UserPost" : 2} ________ UserPost => 2 $json[0]->UserPost; يمكنك استعمال الدالة var_dump لمعرفة هيكلية البيانات لديك: var_dump($json)
  13. أعتقد يمكنك تقليل حجمه بضبط أبعاد الفيديو و الدقة.
  14. Open the Composition Settings in After Effects. Make sure the Pixel Ratio Aspect is set to Square Pixels. Export in Render Queue. You will get a .mov file. Download program called Handbrake Chose the movie in Handbrake Make sure the Dimensions are right. The Cropping to Custom and 0 on all form fields. Chose where to save the video and the name. Click Start to convert from .mov to .mp4
  15. اي اصدار تستخدم؟
  16. هل حاولت إضافة المحرف 'n\' بين المتغيرين, أي قبل الاسم؟ اعتبره سلسلة نصية و أضفه بعلامة +
  17. يمكنك استخدام هذا الأمر لحل المشكلة: php artisan config:clear في حال كنت تستخدم env من داخل التطبيق يفضل استخدام التابع التالي: \Config::get('app.env'); الأوامر المهة التي عليك تنفيذها في كل مرة تتعرض لمشكلة هي: php artisan config:clear php artisan cache:clear php artisan view:clear php artisan route:clear composer dump-autoload ويمكنك اختصارها بالأمر: لارافيل 8 php artisan optimize:clear
  18. يمكنك عمل فلترة على النص المطلوب عرضه باستخدام دوال مساعدة مثل: function encodeID(s) { if (s==='') return '_'; return s.replace(/[^a-zA-Z0-9.-]/g, function(match) { return '_'+match[0].charCodeAt(0).toString(16)+'_'; }); } أو: function encodeHTML(s) { return s.replace(/&/g, '&').replace(/</g, '<').replace(/"/g, '"'); } حيث ستعمل على فلترة النص و استبدال أي محارف خاصة قد تسبب مشكلة. حلول إضافية: var ESC_MAP = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#39;' }; function escapeHTML(s, forAttribute) { return s.replace(forAttribute ? /[&<>'"]/g : /[&<>]/g, function(c) { return ESC_MAP[c]; }); } أو function sanitize(string) { const map = { '&': '&amp;', '<': '&lt;', '>': '&gt;', '"': '&quot;', "'": '&#x27;', "/": '&#x2F;', }; const reg = /[&<>"'/]/ig; return string.replace(reg, (match)=>(map[match])); }
  19. معاملات العدد X هي مجموعة الأعداد التي يقبل عليها X القسمة بدون باقي ولتنفيذ ذلك نقوم بالمرور بحلقة على الأعداد الأصغر من X و نتحقق من قابلية القسمة: for (i= 1; i<= x; i++) { if (x%i== 0) cout<<i<<endl; } ولتسريع الخوارزمية و في حال أعداد كبيرة يكفي المرور لعند جذر العدد لاحظ عندما يقبل العدد x القسمة على i فإن ناتج القسمة حصرا سيكون x/i وهو فعليا المعامل الثاني مثال: x = 12 1 - 12 2 - 6 3 - 4 ____________ x = 100 1 - 100 2 - 50 4 - 25 5 - 20 10 - 10 أي لمعرفة معاملات عدد يكفي المرور لعند جذر العدد و عند كل قابلية قسمة سيكون ناتج القسمة يمثل المعامل الآخر for (i= 1; i*i<= x; i++) { if (x%i== 0) cout<<i << " " << x/i <<endl; } لاحظ: i*i<=x هذا الشرط يضمن أن i أصغر أو تساوي جذر X والذي لا يهمنا حساب أي عدد بعده
  20. لنفرض أن لديك البيانات بشكل JSON res = {"status":"ok',"result":{"id":5851,"title":"Json In Ruby","photo":"300312577_abc.png"}} لا يمكن الوصول لعناصر JSON مباشرة من السلسلة بل يجب عمل parsing لها (تفسيرها لغرض json) أي بناء غرض مصفوفة يمثلها وكمثال: #!/usr/bin/env ruby require 'rubygems' require 'json' res = {"status":"ok',"result":{"id":5851,"title":"Json In Ruby","photo":"300312577_abc.png"}} newRes = JSON.parse(res) puts newRes['status'] puts newRes['id'] حيث استعملنا الدالة JSON.parse . مثال لجلب البيانات من الانترنت باتصال HTTP uri = URI.parse("some_url") req = Net::HTTP::Post.new(uri.request_uri) req.set_form_data('field1' => 'data1', 'field2' => 'data2' ) res = Net::HTTP.start(uri.host, uri.port) do |http| http.request(req) endcase res when Net::HTTPSuccess, Net::HTTPRedirection puts "OK" puts res.body puts status = JSON.parse(res.body)['status'] puts tuid = JSON.parse(res.body)['result']['tuid'] else puts res.message end
  21. حسب شروط استخدام منتجات غوغل وهي الخرائط في حالتك فيوجد بند في الاتفاقية أنه من حق غوغل وضع علامتها في المنتجات و أقتبس: الرابط: google maps terms 9.4 Attribution. Content provided to you through the Service may contain the Brand Features of Google, its strategic partners, or other third-party rights holders of content that Google indexes. When Google provides those Brand Features or other attribution through the Service, you must display such attribution as provided (or as described in the Maps APIs Documentation) and must not delete or alter the attribution. You must conspicuously display the "powered by Google" attribution (and any other attribution(s) required by Google in the Maps APIs Documentation) on or adjacent to the relevant Service search box and Google search results. If you use the standard Google search control, or the standard Google search control form, this attribution will be included automatically, and you must not modify or obscure this automatically-generated attribution. Developers don't have the authority to replace the logo even though it's possible. [UPDATE] 3.2.3 Requirements for Using the Services. (b) Attribution. Customer will display all attribution that (i) Google provides through the Services (including branding, logos, and copyright and trademark notices); or (ii) is specified in the Maps Service Specific Terms. Customer will not modify, obscure, or delete such attribution. كحل برمجي, يمكنك قطع الخريطة أو وضع طبقة overlay فوقها ولكن كما ذكرت هذا يخالف شروط الاستخدام ___________ بالنسبة لأزرار التحكم في Zoom من خلال zoomControlsEnabled: false وكمثال: import 'dart:async'; import 'package:flutter/material.dart'; import 'package:google_maps_flutter/google_maps_flutter.dart'; void main() => runApp(MyApp()); class MyApp extends StatelessWidget { @override Widget build(BuildContext context) { return MaterialApp( title: 'Flutter Google Maps Demo', home: MapSample(), ); } } class MapSample extends StatefulWidget { @override State<MapSample> createState() => MapSampleState(); } class MapSampleState extends State<MapSample> { Completer<GoogleMapController> _controller = Completer(); static final CameraPosition _kGooglePlex = CameraPosition( target: LatLng(37.42796133580664, -122.085749655962), zoom: 14.4746, ); static final CameraPosition _kLake = CameraPosition( bearing: 192.8334901395799, target: LatLng(37.43296265331129, -122.08832357078792), tilt: 59.440717697143555, zoom: 19.151926040649414); @override Widget build(BuildContext context) { return new Scaffold( body: GoogleMap( mapType: MapType.hybrid, initialCameraPosition: _kGooglePlex, zoomControlsEnabled: false, onMapCreated: (GoogleMapController controller) { _controller.complete(controller); }, ), ); } }
  22. أرجو اتباع الخطوات التالية: افتح المكون الذي تريد تصديره من Composition > Add to Media Encoder Queue. تحت Format, اختر H264. عند Preset, اختر الاعداد المسبق الذي تريده. اضغط على الزر الأخضر لبجاية التصدير أو ابحث عن How to save Adobe After Effects as mp4
  23. حتى يصبح الوسيط parameter اختياري في المسار نضع بعد اسمه إشارة استفهام {?username}
  24. كما يجب حذف تعريف service provider من config/app.php و أي اسدعاء للأصناف و تنفيذ التعليمات السابقة مع هذه التعليمة
  25. نحتاج لإدخال قيمة العدد ثم المرور بحلقة الضرب و طباعة النتيجة؟ أرجو المحاولة قبل رؤية الحل إنه سؤال سهل . . num = int(input("Display multiplication table of? ")) for i in range(0, 11): print(num, 'x', i, '=', num*i)
×
×
  • أضف...