994 resultados para C Programming
Resumo:
Development of educational ontologies is a step towards creation of sharable and reusable adaptive educational systems. Ontology as a conceptual courseware structure may work as a mind tool for effective teaching and as a visual navigation interface to the learning objects. The paper discusses an approach to the practical ontology development and presents the designed ontology for teaching/learning C programming.
Resumo:
These notes follow on from the material that you studied in CSSE1000 Introduction to Computer Systems. There you studied details of logic gates, binary numbers and instruction set architectures using the Atmel AVR microcontroller family as an example. In your present course (METR2800 Team Project I), you need to get on to designing and building an application which will include such a microcontroller. These notes focus on programming an AVR microcontroller in C and provide a number of example programs to illustrate the use of some of the AVR peripheral devices.
Resumo:
Software integration is a stage in a software development process to assemble separate components to produce a single product. It is important to manage the risks involved and being able to integrate smoothly, because software cannot be released without integrating it first. Furthermore, it has been shown that the integration and testing phase can make up 40 % of the overall project costs. These issues can be mitigated by using a software engineering practice called continuous integration. This thesis work presents how continuous integration is introduced to the author's employer organisation. This includes studying how the continuous integration process works and creating the technical basis to start using the process on future projects. The implemented system supports software written in C and C++ programming languages on Linux platform, but the general concepts can be applied to any programming language and platform by selecting the appropriate tools. The results demonstrate in detail what issues need to be solved when the process is acquired in a corporate environment. Additionally, they provide an implementation and process description suitable to the organisation. The results show that continuous integration can reduce the risks involved in a software process and increase the quality of the product as well.
Resumo:
Katselmoinnit ja tarkastusmenettelyt ovat osa ohjelmistotuotantoprosessin laadunvarmistusta. Staattisella tarkastamisella tarkoitetaan ohjelmistotuotteen visuaalista tarkastamista ohjelmistovirheiden havaitsemiseksi ja korjaamiseksi. Ohjelmiston lähdekoodin tarkastaminen voidaan suorittaa automaattisesti tarkoitukseen sopivalla ohjelmistolla l. analyysityökalulla. Tässä työssä toteutettiin analyysityökalu C#-kielisten lähdekoodien tarkastamiseen. Työkalulla suoritetussa kenttätestauksessa havaittiin tarkastettavissa ohjelmistoissa ohjelmiston ylläpitoon vaikuttavia puutteita. Lisäksi työssä tarkasteltiin katselmointeja osana ohjelmistotuotantoprosessin laadunvarmistusta sekä erilaisia ohjelmistovirheitä ja niiden lähteitä.
Resumo:
Fundação de Amparo à Pesquisa do Estado de São Paulo (FAPESP)
Resumo:
This project addresses the unreliability of operating system code, in particular in device drivers. Device driver software is the interface between the operating system and the device's hardware. Device drivers are written in low level code, making them difficult to understand. Almost all device drivers are written in the programming language C which allows for direct manipulation of memory. Due to the complexity of manual movement of data, most mistakes in operating systems occur in device driver code. The programming language Clay can be used to check device driver code at compile-time. Clay does most of its error checking statically to minimize the overhead of run-time checks in order to stay competitive with C's performance time. The Clay compiler can detect a lot more types of errors than the C compiler like buffer overflows, kernel stack overflows, NULL pointer uses, freed memory uses, and aliasing errors. Clay code that successfully compiles is guaranteed to run without failing on errors that Clay can detect. Even though C is unsafe, currently most device drivers are written in it. Not only are device drivers the part of the operating system most likely to fail, they also are the largest part of the operating system. As rewriting every existing device driver in Clay by hand would be impractical, this thesis is part of a project to automate translation of existing drivers from C to Clay. Although C and Clay both allow low level manipulation of data and fill the same niche for developing low level code, they have different syntax, type systems, and paradigms. This paper explores how C can be translated into Clay. It identifies what part of C device drivers cannot be translated into Clay and what information drivers in Clay will require that C cannot provide. It also explains how these translations will occur by explaining how each C structure is represented in the compiler and how these structures are changed to represent a Clay structure.
Resumo:
A concept of educational game for learning programming languages is presented. The idea of learning programming languages and improving programming skills through programming game characters’ behavior is described. The learning course description rules for using in games are suggested. The concept is implemented in a game for learning C# programming language. A common game architecture is modified for using in the educational game. The game engine is built on the base of the graphical engine Ogre3D and extended with game logic. The game has been developed as an industry level commercial product and is planned for sale to educational institutions.
Resumo:
Report published in the Proceedings of the National Conference on "Education and Research in the Information Society", Plovdiv, May, 2016
Resumo:
Mestrado em Engenharia Electrotécnica e de Computadores
Resumo:
Trabalho de Projeto para obtenção do grau de Mestre em Engenharia de Eletrónica e Telecomunicações
Resumo:
Neste trabalho pretende-se introduzir os conceitos associados às redes neuronais e a sua aplicação no controlo de sistemas, neste caso na área da robótica autónoma. Foi utilizado um AGV de modo a testar experimentalmente um controlo através de uma rede neuronal artificial. A grande vantagem das redes neuronais artificiais é estas poderem ser ensinadas a funcionarem como se pretende. A partir desta caraterística foram efetuadas duas abordagens na implementação do AGV disponibilizado. A primeira abordagem ensinava a rede neuronal a funcionar como o controlo por lógica difusa que foi implementado no AGV aquando do seu desenvolvimento. A segunda abordagem foi ensinar a rede neuronal artificial a funcionar a partir de dados retirados de um controlo remoto simples implementado no AGV. Ambas as abordagens foram inicialmente implementadas e simuladas no MATLAB, antes de se efetuar a sua implementação no AGV. O MATLAB é utilizado para efetuar o treino das redes neuronais multicamada proactivas através do algoritmo de treino por retropropagação de Levenberg-Marquardt. A implementação de uma rede neuronal artificial na primeira abordagem foi implementada em três fases, MATLAB, posteriormente linguagem de programação C no computador e por fim, microcontrolador PIC no AGV, permitindo assim diferenciar o desenvolvimento destas técnicas em várias plataformas. Durante o desenvolvimento da segunda abordagem foi desenvolvido uma aplicação Android que permite monitorizar e controlar o AGV remotamente. Os resultados obtidos pela implementação da rede neuronal a partir do controlo difuso e do controlo remoto foram satisfatórios, pois o AGV percorria os percursos testados corretamente, em ambos os casos. Por fim concluiu-se que é viável a aplicação das redes neuronais no controlo de um AGV. Mais ainda, é possível utilizar o sistema desenvolvido para implementar e testar novas RNA.
Resumo:
Thesis presented in partial fulfillment of the requirements for the degree of Doctor of Philosophy in the subject of Electrical and Computer Engineering
Resumo:
A racionalização do consumo de energia elétrica é um tema que assume uma importância crescente nos dias de hoje. O elevado consumo de energia, principalmente a nível comercial/industrial, tem motivado o aparecimento de questões políticas, económico-sociais e ambientais que visam a sensibilização dos consumidores para a gestão eficiente dos seus recursos. Neste sentido, as empresas e instituições têm demonstrado interesse em encontrar soluções de gestão nas suas instalações elétricas que permitam a monitorização de indicadores e a previsão de falhas cuja ocorrência acarreta elevados custos de reparação/substituição, de paragem de produção, entre outros. O estudo aqui apresentado surge no âmbito de um projeto académico, cuja finalidade se prende com a implementação de um sistema de monitorização da qualidade e consumo de energia elétrica no Instituto Superior de Engenharia do Porto (ISEP). Baseado numa rede de dispositivos analisadores de parâmetros de energia elétrica, estes equipamentos de medição dispõem de software próprio, o GridVis, que permite o acesso remoto, através de uma rede Ethernet, aos parâmetros de energia (grandezas físicas elétricas). O sistema desenvolvido é capaz de identificar parâmetros de consumo de energia anómalos e emitir alertas, pré-programados em linguagem C++ e diagrama de blocos. Permite, por exemplo, detetar um consumo instantâneo excessivo de energia e alertar a sua ocorrência. As páginas de acesso aos parâmetros medidos por cada dispositivo são acessíveis através de uma interface gráfica desenvolvida em Adobe Flash que inclui, de uma forma simples e organizada, a informação relativa à distribuição dos dispositivos de medição. Num contexto de expansão deste projeto para outros edifícios do ISEP, a solução desenvolvida encontra-se preparada para ser adaptada em qualquer local, desde que reúna certos requisitos.
Resumo:
The theme of this dissertation is the finite element method applied to mechanical structures. A new finite element program is developed that, besides executing different types of structural analysis, also allows the calculation of the derivatives of structural performances using the continuum method of design sensitivities analysis, with the purpose of allowing, in combination with the mathematical programming algorithms found in the commercial software MATLAB, to solve structural optimization problems. The program is called EFFECT – Efficient Finite Element Code. The object-oriented programming paradigm and specifically the C ++ programming language are used for program development. The main objective of this dissertation is to design EFFECT so that it can constitute, in this stage of development, the foundation for a program with analysis capacities similar to other open source finite element programs. In this first stage, 6 elements are implemented for linear analysis: 2-dimensional truss (Truss2D), 3-dimensional truss (Truss3D), 2-dimensional beam (Beam2D), 3-dimensional beam (Beam3D), triangular shell element (Shell3Node) and quadrilateral shell element (Shell4Node). The shell elements combine two distinct elements, one for simulating the membrane behavior and the other to simulate the plate bending behavior. The non-linear analysis capability is also developed, combining the corotational formulation with the Newton-Raphson iterative method, but at this stage is only avaiable to solve problems modeled with Beam2D elements subject to large displacements and rotations, called nonlinear geometric problems. The design sensitivity analysis capability is implemented in two elements, Truss2D and Beam2D, where are included the procedures and the analytic expressions for calculating derivatives of displacements, stress and volume performances with respect to 5 different design variables types. Finally, a set of test examples were created to validate the accuracy and consistency of the result obtained from EFFECT, by comparing them with results published in the literature or obtained with the ANSYS commercial finite element code.
Resumo:
Dissertação de mestrado integrado em Engenharia Civil